2012-07-17 82 views
-2

可能重复:
Android number format is wrong somehow, instead of 3.5 I get 3.499999999, why?Android。 4.1 - 4 = 0.09999999999999964。为什么?

任何一个人知道为什么Android平台给出了这样奇怪的结果呢?

4.1 - 4 = 0.09999999999999964

它只有4中给出了这样奇怪的舍入。

其实我需要得到4.1的尾数,所以我需要0.1作为结果,但不是0.09999999999999964。

任何想法?

+1

你应该研究浮点操作和数字格式。 – 2012-07-17 13:07:34

+1

http://floating-point-gui.de – BalusC 2012-07-17 13:08:16

+0

如果你想精确计算,你应该使用'BigDecimal'来进行这种操作。 – Lion 2012-07-17 13:08:22

回答

1

这是舍入问题。你可以看看BigDecimal这个班,该班应该做你需要的。

+0

例如:BigDecimal c = new BigDecimal(“4.1”)。 double d = c.doubleValue();' – waqaslam 2012-07-17 13:39:22

+0

谢谢,但不是,它没有办法。这种结构的结果也是0.09999999999999964。 – Anton 2012-07-21 14:14:52