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

spa*_*ace 1 java casting typecast-operator

double cost = 10.95;
int numDollars = (int) cost; //sets numDollars to 10
Run Code Online (Sandbox Code Playgroud)

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

int numDollars = (int)(cost+0.5); //numDollars has value 11
Run Code Online (Sandbox Code Playgroud)

以上是我的AP计算机科学A Barron的书中所写的内容.我对Java和所有人都很陌生,但我只是想知道是否应该用0.05替换0.5.如果这本书是正确的,有人可以帮助我理解为什么吗?

abe*_*nky 7

该示例使用10.95,但解决方案需要适用于所有值.

考虑使用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 错误的答案