|
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人。 |
|
|
Leo · 为什么carg(-0)返回-pi? 1 年前 |
|
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 2 年前 |
|
|
Alexander · 为什么数字的输出不同? 2 年前 |
|
Ronny · 如何防止程序返回“inf”? 2 年前 |
|
|
EMS · 为什么双重打印的值与C中的浮点值相同,而它们的大小不同? 2 年前 |
|
|
Dakolas · 对python十进制库感到困惑 2 年前 |
|
|
RTC222 · 无法获取vrndscalepd的正确舍入模式代码 2 年前 |