java float 精度问题 这么解决这个float丢失精度的问题 float f = 1.1f; f = f-0.1f; System.out.println(f);这个时候输出的是0.999999而不是1 这个如何让他输出1,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 了解一下java.math.BigDecimal注意需要用它接收String参数的构造方法。 我的在eclipse j2ee版中输出是1.0 我工作用的环境是 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表示浮点数的方法。这样的话您就可能会牺牲一些精度,有些浮点数运算也会引入误差。 谢谢大家了 是我JDK版本比较低的原因 把eclipse里面preference-java-jdk compiler从5.0改到6.0就没这个问题了 说一说java里面的hashcode1--Object.hashcode() 如何获得ResultSet res的影响行数 为什么dispose不能关闭当前页面 无分贴:java程序执行的最小单位与多线程 在线--求救JSP中获取数据库信息 Java哪个好点 把文件分割成2个。为什么后面的文件是0个字节 如何让避免center不会跟谁temp改变? java.sql.Resultset的问题,急!急! 我在jbuilder 5中设置cvs时,提示出错,如何解决 listfiles这个方法对文件夹个数有没有限制 java新手求助
注意需要用它接收String参数的构造方法。
输出结果也是1.0.
同问,什么情况下会输出0.999999?
在需要精确答案的地方,避免使用float 和double。
对于货币计算,要用int, long和BigDecimal