我正在写一篇关于浮点数的文章。我在 Javascript 控制台中放入了一些简单的测试来尝试。
我正在寻找非交换加法的示例,即: (x+y)+z!=(z+x)+y
如果您有一些有效的 x y z 值,谢谢。
没有这样的例子,因为按照 IEEE-754 的定义,浮点加法是保证是可交换的。相关用语:
...每个操作都应执行,就好像它首先生成一个精确到无限精度且具有无限范围的中间结果,然后强制该中间结果适合目标的格式。
也就是说,加法本身是以无限精度执行的;结果中的所有错误都来自于需要放弃一些精度。由于无限精度(即“常规”)加法是可交换的,这意味着整个操作是可交换的。
您可能想到的是关联性。浮点加法不具有关联性,因为前两个数字相加后的精度损失通常与后两个数字相加后的精度损失不同。最常见的例子被称为“灾难性取消”:(1 + 1e100) + -1e100 = 0
, and 1 + (1e100 + -1e100) = 1
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)