¿Es suficiente especificar el tipo de punto flotante para garantizar los mismos resultados?

Estoy escribiendo una especificación que describe alguna aritmética que será realizada por el software. La intención es poder entregar esta especificación a dos programadores diferentes (que usan lenguajes y / o arquitecturas potencialmente diferentes) y cuando incorporo información a sus programas, ambos lo harán.siempre Escupe el mismo resultado.

Por ejemplo, si la especificación dice "agregar 0.5 al resultado", esto puede ser un problema. Dependiendo del método de almacenamiento de punto flotante, 0.5 podría representarse como 0.4999999135 o 0.500000138, etc.

¿Cuál es la mejor manera de especificar las reglas aquí para que las cosas sean coherentes en todos los ámbitos? ¿Puedo decir "Todos los números deben estar representados enIEEE 754 ¿Formato de 64 bits "? ¿O es mejor decir algo como" Todos los números deben primero escalarse en 1000 y calcularse utilizando aritmética de punto fijo "?

Esto es un poco diferente de la mayoría de las preguntas de punto flotante que he encontrado, ya que el problema es la repetibilidad en todas las plataformas, no la precisión general.

Respuestas a la pregunta(1)

Su respuesta a la pregunta