java中浮点计算的奇怪结果

时间:2011-11-08 16:52:30

标签: java floating-point computation

  

可能重复:
  Java floating point math - (conversion for feet/meters)
  Java floating point arithmetic

我在java中遇到了以下问题。

此计算(0.196f * 100)产生19.599999487400055而不是19.6

我很困惑。任何人都可以告诉我为什么我会得到这个奇怪的结果,以及如何确保我得到正确的结果,而不必污染我的代码与遍布整个地方。

还有什么其他jvm语言更好地处理这些问题?例如scala会有什么不同吗?

2 个答案:

答案 0 :(得分:1)

查看此链接或谷歌主题。阅读第一章“章节”,你就会明白。 {{3P>

答案 1 :(得分:0)

正如评论已经说明的那样,浮点数始终存在不准确性。 double受到的影响较小,但仍然受此影响,所以你必须处理它们。

如果您想要精确计算,请使用BigDecimal,但您无法使用运算符。