Достаточно ли указать тип с плавающей точкой, чтобы гарантировать такие же результаты?

Я пишу спецификацию, которая описывает некоторую арифметику, которая будет выполняться программным обеспечением. Предполагается, что я могу передать эту спецификацию двум разным программистам (которые используют потенциально разные языки и / или архитектуры), и когда я внесу некоторый вклад в их программы, они обавсегда выплюнуть тот же результат.

Например, если спецификация говорит «добавить 0,5 к результату», это может быть проблемой. В зависимости от метода хранения с плавающей запятой 0,5 может быть представлено как 0,4999999135 или 0,500000138 и т. Д.

Каков наилучший способ указать правила, чтобы все было согласованно? Могу ли я просто сказать «Все числа должны быть представлены вIEEE 754 64-битный формат "? Или лучше сказать что-то вроде" Все числа должны быть сначала масштабированы до 1000 и вычислены с использованием арифметики с фиксированной точкой "?

Это немного отличается от большинства вопросов с плавающей запятой, с которыми я сталкивался, поскольку проблема заключается в повторяемости между платформами, а не в общей точности.

Ответы на вопрос(1)

Ваш ответ на вопрос