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