java中Double类型精度问题
在实际开发中,我们很容易发现,java的double类型数据在精度上总是存在着一个0.0000….01左右的偏差。例如下面的程序:
publicstaticvoidmain(String[] args) {
double a=1.1;
double b=2;
System.out.println(b-a);
}
程序输出结果为:
0.8999999999999999
而在C语言中不存在这样的问题,例如:
void main(){
doublea=2;
doubleb=1.1;
printf("%f",a-b);
}
程序结果为:
建议:在用java开发时,若有精度要求,建议避免使用double及float类型。