java 2.01*100=多少?2.02*100=多少?

来源:百度知道 编辑:UC知道 时间:2024/05/15 03:24:01
为什么
2.01*100=200.99999999999997 结果不是201.0

2.02*100=202.0 是正确的。
这是java version "1.6.0_01"上试的。这样的数还有,比如4.02*100=401.99999999999994
4.01*100=401.0
程序如下:
class Test{
public static void main(String [] args){
System.out.println(2.01*100);
}
}

1楼的回答有疑问啊,0.075×1000是等于75的,0.025*1000是等于25,那(0.075+0.025)怎么不行呢?

这个问题还真没注意过哪

0.1不能用二进制精确表示?

http://zhidao.baidu.com/question/20958029.html?si=1

为二楼的补充:你的问题我不知道。不过我觉得应该是这么着的。他只看你要运算的那两个数是不是能表示。或者说是那个十进制的数在计算机里运算时是按二进制运算的。他就把那个十进制数转换成二进制数。在指定的多少位二进制之内还没能把这个十进制数表示清楚就进行四舍五入。再进行运算,所以结果就会有点儿偏差。

计算机计算的时候好像有误差的哦!