public class TestQuestion{
public static void main(String[] args){
double a = 0.2;
int b = 555;
double t = (8654 - 262 - 3500)*a - b;
System.out.println(t);
}
}
以上使用notepad++书写,之后调用cmd运行以上程序。为什么输出结果为423.4000000000001,而不是423.4?
这个是 在使用Java,double 进行运算时,经常出现精度丢失的问题,总是在一个正确的结果左右偏0.0000**1。 特别在实际项目中,通过一个公式校验该值是否大于0,如果大于0我们会做一件事情,小于0我们又处理其他事情。 这样的情况通过double计算出来的结果去和0比较大小,尤其是有小数点的时候,经常会因为精度丢失而导致程序处理流程出错。
建议你这样试试看: