【发布时间】:2013-06-06 11:36:21
【问题描述】:
我正在编写一个规范,描述一些将由软件执行的算术。目的是我可以将此规范交给两个不同的程序员(他们可能使用不同的语言和/或架构),当我向他们的程序提供一些输入时,他们都会总是输出相同的结果.
例如,如果规范说“将 0.5 添加到结果”,这可能是个问题。根据浮点存储方式的不同,0.5可以表示为0.4999999135、0.500000138等。
在此处指定规则以使事情全面一致的最佳方式是什么?我可以说“所有数字必须以IEEE 754 64 位格式表示”吗?还是说“所有数字必须先按 1000 缩放并使用定点算术计算”这样的说法更好?
这与我遇到的大多数浮点问题略有不同,因为问题是跨平台的可重复性,而不是整体精度。
【问题讨论】: