教科书中的铸造问题——它是 0.05 还是 0.5?

a casting problem in the textbook — is it 0.05 or 0.5?

double cost = 10.95;
int numDollars = (int) cost; //sets numDollars to 10

如果您打算将成本四舍五入到最接近的美元,您需要写

int numDollars = (int)(cost+0.5); //numDollars has value 11

以上是我的AP computer science A Barron's 书上写的。我对 Java 和所有东西都很陌生,但我只是想知道是否应该将 0.5 替换为 0.05。如果这本书是正确的,有人可以帮助我理解为什么吗?

示例使用 10.95,但解决方案需要适用于 all 值。

考虑使用 10.51
的不同示例 正确答案应该是什么? 11

但是你如何到达那里?

10.51 + 0.50 = 11.01, truncated by typecast to 11

如果我们尝试使用您的建议,我们会得到:

10.51 + 0.05 == 10.56, truncated by typecast to 10 答案错误