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

System.out.println(1.001*1000)输出结果为什么是1000.99999999?
System.out.println(1.001*1000)输出结果为什么是1000.99999999?
谁能帮我解释下么

------解决方案--------------------
精度问题
稍微熟悉编译原理的话
你应当知道1.001在计算机中是不能精确表示的
这种情况下,如果想不丢失精度
得用bigdemical相关的类
------解决方案--------------------
double类型是无法精确表示1.001的
------解决方案--------------------
学过计算机基础的人都应该知道计算机内部是二进制表示的。。。有些数不能精确表示

探讨

精度问题
稍微熟悉编译原理的话
你应当知道1.001在计算机中是不能精确表示的
这种情况下,如果想不丢失精度
得用bigdemical相关的类

------解决方案--------------------
此乃正解
探讨
精度问题
稍微熟悉编译原理的话
你应当知道1.001在计算机中是不能精确表示的
这种情况下,如果想不丢失精度
得用bigdemical相关的类

------解决方案--------------------
double类型是无法精确表示1.001的