站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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


多谢楼上各位!


写就给分,别光说不练


↑返回目录
前一篇: 基于中间件技术的多层分布式系统用哪种架构比较好?
后一篇: 使用UTF-8时,下载长文件名时无法正确显示原文件名.请问如何解决?