日期:2014-05-20  浏览次数:20713 次

java 两个double类型的数相加 结果不正确
double aDouble=1420133.89,bDouble=12282.47;
double sum=aDouble+bDouble;
System.out.println(sum);

本来结果为:1432416.36  得到的结果为:1432416.3599999999

怎么才可以得到正确结果呢?
------解决方案--------------------
Java中的简单浮点数类型float和double不能够进行运算
------解决方案--------------------
不知道java支不支持BCD码数字或货币数字类型。
------解决方案--------------------
这是计算机的问题 不是Java的问题

参考下这个吧:
http://blog.csdn.net/waitfor_/article/details/8035773
------解决方案--------------------
嗯 我现在知道了 呵呵 可以用 bigdecimal
------解决方案--------------------
如果是作为计算的中间值,而不是把这个结果显示在屏幕上,我看这个计算结果完全正确啊,1432416.3599999999和1432416.36就是一样的。

就算要显示在屏幕上,显示前总得保留若干位小数吧,那么显示出来还是1432416.36,就是正确的结果。


要相信基本类。
------解决方案--------------------
引用:
如果是作为计算的中间值,而不是把这个结果显示在屏幕上,我看这个计算结果完全正确啊,1432416.3599999999和1432416.36就是一样的。

就算要显示在屏幕上,显示前总得保留若干位小数吧,那么显示出来还是1432416.36,就是正确的结果。


要相信基本类。



不是  我这个要要求 不可以四舍五入 是多少就得是多少 
------解决方案--------------------
问题解决 谢谢各位 O(∩_∩)O~