3

如果之后的下一个可表示值-0.0+0.0,那为什么nextafter(-0.0, INFINITY)不返回+0.0呢?

4

2 回答 2

4

如果 -0.0 之后的下一个可表示值是 +0.0 ....

假前提。
-0.0+0.0具有相同的价值
if (-0.0 == +0.0)真的

nextafter()“函数确定下一个可表示的”(C17dr § 7.12.11.3 2)

nextafter(-0.0, INFINITY)并且nextafter(+0.0, INFINITY)都返回DBL_TRUE_MIN


+0.0并且-0.0通常没有功能上的差异。有时他们确实有所作为。


高级:为具有预期十进制浮点支持的 C2X 做好准备,因为有许多具有相同值的decimal64编码集。和朋友的重复使用并不会通过所有的FP编码形成一个序列。nextafter()

于 2021-06-28T13:07:06.143 回答
2

因为 +0 不是“之后”-0,因为它比较等于 -0。

于 2021-06-28T09:54:04.267 回答