是否有浮点无穷小?

Cap*_*jan 3 c floating-point

由于存在有限多个浮点数并且可以比较每个可能的这样的数字对(我假设),所以必须始终存在数字'b',这是

  1. 小于某个给定数字'a'(不是+/-无穷大)和
  2. 没有数字'c'小于'a'且大于'b';

即"下一个"较小的浮点数代表.我怀疑是否:

  1. 有一个函数较小(float a)在C编程语言中返回这样的数字b(或更大(浮动a))
  2. 如果没有,那么如果有办法为某些类型的数字'a'获得这些'下一个'数字,例如,如果'a'是整数/零.

float smaller(float a) return a - 0.00...001f;
Run Code Online (Sandbox Code Playgroud)

在我看来,这可能不适用于所有可能的输入,但我可能是错的,所以这就是为什么我转向你们.任何帮助都是有意义的.

Bat*_*eba 5

的确有.你是在"nextafter"系列功能之后.

这些可用于移动从一个浮点数到下一个,多以同样的方式,你可以使用++--为整型.

请参阅https://en.cppreference.com/w/c/numeric/math/nextafter

(这是C文档).


Sha*_*ger 5

C99/POSIX功能nextafter/nexttoward可以做到这一点.您提供起始值x和目标值y,它们从目标方向开始返回下一个值.