【发布时间】:2018-03-08 22:11:10
【问题描述】:
int big = 1234567890;
float approx = big;
System.out.println(big - (int)approx);
系统打印出-46。我认为 float 只允许 7 个有效数字,这意味着操作将是 1234567890-1234567=1,233,333,323。它怎么可能打印-46?
【问题讨论】:
-
不是两个提案的副本。 OP 不明白为什么 1234567 不是 1234567890 的最接近近似值。这与任何事情都无关。
-
idownvotedbecau.se/noresearch,例如打印
approx的值,这会立即突出您对“7 个有效数字”含义的误解。我的意思是,如果代码打印-46,而您期望从一个简单的减法运算中得到1233333323,那么首先想到的应该是减法的两个值不是您认为的那样,然后打印它们将是下一个亲自研究问题。