如果我想在使用 IEEE-754 浮点值的计算中保持尽可能多的精度,那更好:
a = b * c / d
Run Code Online (Sandbox Code Playgroud)
或者
a = b / d * c
Run Code Online (Sandbox Code Playgroud)
有区别吗?如果有,它是否取决于输入值的大小?而且,如果幅度很重要,那么在已知值的一般幅度时如何确定最佳排序?
这取决于值的大小。显然,如果一除以零,所有的赌注都会被取消,但如果乘法或除法导致非正规的后续操作可能会失去精度。
您可能会发现研究戈德堡的开创性论文《每个计算机科学家应该了解浮点算术是什么》很有用,它将比您在这里可能收到的任何答案更好地解释事情。(Goldberg 是 IEEE-754 的原作者之一。)