为什么java将整数转化为更少的东西

这个问题在这里已经有了答案:

  • 为什么不使用Double或Float来表示货币? 14个答案
  • 为什么我会看到一个初始化为像21.4那样的值的双变量21.399999618530273? 14个答案

  • 你正在使用double进行计算。

    请看看这个http://floating-point-gui.de/

    另外http://www.mkyong.com/java/how-do-calculate-monetary-values-in-java-double-vs-bigdecimal/


    我承认,我没有阅读你的代码,但我99%确定你在使用二进制数据存储时遇到问题。

    你看,在十进制系统中,1/10可以很容易地表示为0.1。 但是,尝试1/3,它变成0.33333333333333333 ...

    在二进制中,1/10是0.0001100110011001100110011 ...

    看看BigDecimal的base10 numberstorage。

    链接地址: http://www.djcxy.com/p/85815.html

    上一篇: why is java turning integers into something less

    下一篇: Using double to temporarily store currency values?