|
18
|
| John Farrell · 技术社区 · 16 年前 |
|
|
1
31
What every programmer should know 关于它。
|
|
|
2
5
双精度并不精确,因此内部33.46639实际上存储为33.466389 编辑:正如Richard所说,它是浮点数据(以二进制形式存储在有限的一组位中),所以不完全是那样。。。。 |
|
|
3
3
|
|
|
4
2
原因是33.46639将被表示为略小于该数字的值。
使用(int)的类型转换将只返回整数部分(33466389)。 如果您想要“正确”的数字,请在类型转换之前尝试round()。 |
|
|
5
1
如果你问为什么
|
|
|
6
1
因为33.46639不能精确地用有限个二进制数字来表示。33.46639*1000000的实际结果为33466389.999999962747097015380859375。演员阵容将其截至33466389人。 |