当前位置: 代码迷 >> Java Web开发 >> 问一个关于浮点数的有关问题
  详细解决方案

问一个关于浮点数的有关问题

热度:203   发布时间:2016-04-16 21:52:55.0
问一个关于浮点数的问题
(1)使用java,
System.out.print(2.0 - 1.1);

产生结果0.8999999999999999

(2)使用C#,
Console.writeline(2.0 - 1.1)

结果:0.9

谁能解释上面的原因,难道java不如C#智能?最近刚刚从C# 转java,感觉很多东西不太明白,

书上说,这个是二进制编码问题,难道C# 就没有二进制编码问题,谁能更深入的说一下.

谢谢...
------解决思路----------------------
java采用的是二进制系统,所以浮点数运算有时没法得到精确值,还记得十进制的小数位转二进制吧,就是这个道理,就像十进制没法精确表示1/3一样,所以如果运算需要精确值,就用BigInteger或者BigDecimal。
------解决思路----------------------
浮点数本来就不精确,去看下IEEE754标准吧
  相关解决方案