|
|
1
24
因为
任何小于1e32的都将低于浮点的精度,所以实际上等于加一个零。 编辑:ulrichb表明,值1e23实际上会影响float.MaxValue,这意味着您根本没有比较float,而是比较double。编译器在添加和比较之前将所有值转换为双精度值。 |
|
|
2
9
很有意思:
印刷品: True, 3.402823E+38 False, 3.402823E+38 True, 1.79769313486232E+308 False, Infinity
所以。。。正如古法所说
|
|
|
3
3
这里的问题是浮点精度。
任何超过这个精度的东西都是“用零填充”的,在这个高数字上加1不会改变它。 |
|
4
3
简而言之,差别在第39位,并且
|
|
|
5
0
要使float类型的临时变量实际保存单个精度值,必须从内存中的float变量加载该变量。编译器通常被允许以比所需精度更高的精度来表示单精度值,并且在值位于寄存器中时倾向于这样做。当它溢出回内存时,额外的精度就会丢失。 |
|
|
Leo · 为什么carg(-0)返回-pi? 1 年前 |
|
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 2 年前 |
|
|
Alexander · 为什么数字的输出不同? 2 年前 |
|
Ronny · 如何防止程序返回“inf”? 2 年前 |
|
|
EMS · 为什么双重打印的值与C中的浮点值相同,而它们的大小不同? 2 年前 |
|
|
Dakolas · 对python十进制库感到困惑 2 年前 |
|
|
RTC222 · 无法获取vrndscalepd的正确舍入模式代码 2 年前 |