当前页面: 开发资料首页 → J2EE 专题 → 两个double数值相加:3.32+2.88=6.199999999999999的问题,请高手赐教
两个double数值相加:3.32+2.88=6.199999999999999的问题,请高手赐教
摘要: 两个double数值相加:3.32+2.88=6.199999999999999的问题,请高手赐教
如题,
double d1=3.32;
double d2=2.88;
double d3=d1+d2;
System.out.println("----------------d1+d2:"+d3);
结果输出为:6.199999999999999
为什么啊为什么,哪位高人知道指点一下啊
这是由浮点数的性质决定的,浮点数实际上是近似数
但是改变为如下数字:
double d1=3.52;
double d2=2.78;
结果就为:6.3
这个怎么解释呢?
double不精确,使用BigDecimal
Java 理论与实践: 您的小数点到哪里去了?
使用浮点数和小数中的技巧和陷阱
Brian Goetz, 首席顾问, Quiotix Corp
2003 年 4 月 20 日
http://www-128.ibm.com/developerworks/cn/java/j-jtp0114/index.html
多谢楼上各位!
写就给分,别光说不练