整数和浮点精度

nun*_*nos 4 precision floating-accuracy

这更多的是数值分析而不是编程问题,但我想你们中的一些人将能够回答它.

总和两个花车,是否有任何精度损失?为什么?

在float和integer之和中,是否有任何精度丢失?为什么?

谢谢.

Joe*_*oey 7

总和两个花车,是否有任何精度损失?

如果两个浮点数具有不同的幅度并且两者都使用完整的精度范围(大约7个十进制数字),那么是的,您将看到最后一些位置的一些损失.

为什么?

这是因为浮点数以(符号)(尾数)×2 (指数)的形式存储.如果两个值具有不同的指数并且您添加它们,则较小的值将减少到尾数中的较少位数(因为它必须适应较大的指数):

PS> [float]([float]0.0000001 + [float]1)
1
Run Code Online (Sandbox Code Playgroud)

在float和integer之和中,是否有任何精度丢失?

是的,正常的32位整数能够精确地表示不完全适合浮点数的值.浮动仍然可以存储大致相同的数字,但不再完全相同.当然,这仅适用于足够大的数字,即.即 超过24位.

为什么?

因为float具有24位精度,而(32位)整数具有32. float仍然能够保留幅度和大多数有效数字,但最后的位置可能有所不同:

PS> [float]2100000050 + [float]100
2100000100
Run Code Online (Sandbox Code Playgroud)