首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java float 精度有关问题

2013-01-18 
java float 精度问题这么解决这个float丢失精度的问题float f 1.1f;f f-0.1f System.out.println(f)

java float 精度问题
这么解决这个float丢失精度的问题
  float f = 1.1f;
  f =  f-0.1f;
 System.out.println(f);
这个时候输出的是0.999999而不是1  这个如何让他输出1,谢谢!
[解决办法]
java.math.BigDecimal

[解决办法]
我工作用的环境是 STS2.9, JDK7.0.09.
输出结果也是1.0.
同问,什么情况下会输出0.999999?

[解决办法]
System.out.println(new BigDecimal("1.1").subtract(new BigDecimal("0.1")));

并不是所有的小数都可以用二进制浮点数精确表示。LS几个输出1.0的可以换成1.1-0.2试试。
在需要精确答案的地方,避免使用float 和double。
对于货币计算,要用int, long和BigDecimal
[解决办法]
嗯,用大数据类型,精度就不会丢失
[解决办法]
十进制数的二进制表示可能不够精确,浮点数或是双精度浮点数无法精确表示的情况并不少见。浮点数值没办法用十进制来精确表示的原因要归咎于CPU表示浮点数的方法。这样的话您就可能会牺牲一些精度,有些浮点数运算也会引入误差。

热点排行