IEEE 754标准将负零的平方根定义为负零。此选择很容易合理化,但是其他选择(例如将sqrt(-0.0)
定义为NaN
)也可以合理化,并且更容易在硬件中实现。如果担心程序员会写if (x >= 0.0) then sqrt(x) else 0.0
并在NaN
为x
时被此表达式评估为-0.0
所咬住,则可以将sqrt(-0.0)
定义为+0.0
(实际上,对于此特定表达式,结果将更加一致)。
在将sqrt(-0.0)
定义为-0.0
的情况下,是否特别存在数字算法,从而简化了算法本身的逻辑?
最佳答案
唯一的数学上合理的结果是0。存在一个合理的问题,它应该是+0还是-0。对于大多数计算,它根本没有什么区别,但是在-0约定下,对于某些特定的复杂表达式,其结果更有意义。确切的详细信息不在本网站的讨论范围之内,但这仅是要旨。
如果别人没有击败我,我可能会在不休假时给我更多的解释。