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

标签 c floating-point c11 math.h c17

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

最佳答案

If the next representable value after -0.0 is +0.0 ....

错误前提。
-0.0+0.0 具有相同的
if (-0.0 == +0.0)true

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

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


+0.0-0.0 通常没有功能上的区别。有时他们确实会制作 difference .


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

关于c - 如果 -0.0 之后的下一个可表示值是 +0.0,那么为什么 nextafter(-0.0, INFINITY) 不返回 +0.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68161103/

相关文章:

为 32 位编译 mongoose

c - 关于修改 char * 元素的 SIGSEGV

c++ - 如何在 C/C++ 中有效地计算 double 到两位小数?

c++ - 使用数组地址获取尾后指针

将 C 数组记录转换为 Delphi

c - 如何正确定义char数组

c - 预除分母时数值不稳定的风险是什么?

javascript - 在 JavaScript 中使用带小数点的 float 的最佳方法是什么?

c - 使用字符串的简单程序

c - 为什么 gcc(或 glibc)不实现 _s 函数?