Math 使用windows计算器时,为什么sqrt(4)-2等于-8.1648465955514287168521180122928e-39?

Math 使用windows计算器时,为什么sqrt(4)-2等于-8.1648465955514287168521180122928e-39?,math,floating-point,calculator,Math,Floating Point,Calculator,可能重复: 在我的Win7 x64上使用内置计算器,当计算sqrt(4)-2时,我得到了数字-8.1648465955514287168521180122928e-39 我希望结果是0。浮点值有时会出现一些错误,当你去减去它们时。您可能会得到一个0或非常接近0的表示(10^-39非常接近) 欲了解更多信息,请访问维基百科。sqrt(4)-2如何处理?您认为sqrt(4)是如何计算的?@神秘:绝对非标准浮点错误;任何标准的浮点系统都会产生0。@stephencon无论Windows在做什么,它都

可能重复:

在我的Win7 x64上使用内置计算器,当计算
sqrt(4)-2时,我得到了数字
-8.1648465955514287168521180122928e-39


我希望结果是0。

浮点值有时会出现一些错误,当你去减去它们时。您可能会得到一个0或非常接近0的表示(10^-39非常接近)


欲了解更多信息,请访问维基百科。

sqrt(4)-2如何处理?您认为sqrt(4)是如何计算的?@神秘:绝对非标准浮点错误;任何标准的浮点系统都会产生0。@stephencon无论Windows在做什么,它都不是标准的,因为这远远超过了双精度。也许它是在模拟四精度,但不是完美的。我的理解是,计算器人员实现了一个高精度浮点库,这样他们就不会出现令人尴尬的错误。。。像这样:)谢谢。我不知道分数是如何用二进制表示的。这也有帮助。