神奇的结果,7.7-7=???
public class Test{
public static void main(String[] args){
double a=7.7,b=7,c;
c=a-b;
System.out.println(c);
}
}
结果等于0.7000000000000002,到底这个2是那来的?为什么得这结果?
我想做计算器,如果计算器算出这个结果就是不对的,但我又不想制这
计算器多少位小数,应该怎么处理?请各位大侠说详细点,谢谢
------解决方案--------------------这个是计算机 二进制处理数字的原因,论坛上有过详细的帖子 你搜索一下
------解决方案--------------------float 和 double 等浮点类型计算时经常有0.0000***1的偏差的,我通常是将double转换成BigDecimal进行计算,可以了解下BigDecimal
------解决方案--------------------double 的精度长,用二进制来处理的,你自己用二进制算,你也会算出这样的结果。
------解决方案--------------------double float操作 ,需要注意精度的问题