私は、ソフトウェアによって実行されるいくつかの演算を記述する仕様を書いています。この仕様を 2 人の異なるプログラマ (異なる言語やアーキテクチャを使用している可能性がある) に渡すことができ、彼らのプログラムに何らかの入力を与えると、両者は常に同じ結果を吐き出すことが意図されています。
たとえば、仕様に「結果に 0.5 を追加する」と記載されている場合、これは問題になる可能性があります。浮動小数点の格納方法に応じて、0.5 は 0.4999999135、または 0.500000138 などとして表すことができます。
全体的に一貫性を持たせるために、ここでルールを指定する最善の方法は何ですか? 「すべての数値はIEEE 754 64 ビット形式で表す必要があります」とだけ言ってもいいですか? それとも、「すべての数値は最初に 1000 でスケーリングし、固定小数点演算を使用して計算する必要があります」のようなことを言ったほうがよいでしょうか?
問題は全体的な精度ではなく、プラットフォーム間の再現性であるため、これは私が遭遇したほとんどの浮動小数点の質問とは少し異なります。