Floating point 谷歌计算器给出奇怪的结果? 请考虑下面的计算< /P>

Floating point 谷歌计算器给出奇怪的结果? 请考虑下面的计算< /P>,floating-point,precision,floating-accuracy,Floating Point,Precision,Floating Accuracy,5777100-5777090.001370444 当我把它输入谷歌时,我得到的结果是 9.99862955604 当我尝试使用WolframAlpha时 9.998629556 这和我自己的手工计算是一样的 这是怎么回事 谷歌没有使用实数运算。它正在使用一些应用程序代理。奇怪的是,它似乎没有使用标准的IEEE-754格式。与实数运算一样,2^48+1-2^48生成1,但2^49+1-2^49生成0。IEEE-754二进制64格式在2^53+1-2^53之前不会失败。当你说Google没有使用实

5777100-5777090.001370444

当我把它输入谷歌时,我得到的结果是

9.99862955604

当我尝试使用WolframAlpha时

9.998629556

这和我自己的手工计算是一样的


这是怎么回事

谷歌没有使用实数运算。它正在使用一些应用程序代理。奇怪的是,它似乎没有使用标准的IEEE-754格式。与实数运算一样,2^48+1-2^48生成1,但2^49+1-2^49生成0。IEEE-754二进制64格式在2^53+1-2^53之前不会失败。当你说Google没有使用实数运算时,你的意思是WolframAlpha可能正在使用?这意味着什么?也许他们把一个非常大的数字看作某种类型的字符串?WolframAlpha包括一些符号数学引擎,可以像人类一样操纵数学符号,包括将数字管理为数字字符串,至少在某些资源限制下。