如果之后的下一个可表示值-0.0
是+0.0
,那为什么nextafter(-0.0, INFINITY)
不返回+0.0
呢?
问问题
85 次
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 回答