IEEE 754标准将负零的平方根定义为负零。此选择很容易合理化,但是其他选择(例如将sqrt(-0.0)定义为NaN)也可以合理化,并且更容易在硬件中实现。如果担心程序员会写if (x >= 0.0) then sqrt(x) else 0.0并在NaNx时被此表达式评估为-0.0所咬住,则可以将sqrt(-0.0)定义为+0.0(实际上,对于此特定表达式,结果将更加一致)。

在将sqrt(-0.0)定义为-0.0的情况下,是否特别存在数字算法,从而简化了算法本身的逻辑?

最佳答案

唯一的数学上合理的结果是0。存在一个合理的问题,它应该是+0还是-0。对于大多数计算,它根本没有什么区别,但是在-0约定下,对于某些特定的复杂表达式,其结果更有意义。确切的详细信息不在本网站的讨论范围之内,但这仅是要旨。

如果别人没有击败我,我可能会在不休假时给我更多的解释。

10-02 03:56