C 有浮点无穷小吗?

C 有浮点无穷小吗?,c,floating-point,C,Floating Point,由于有有限多个浮点数,并且可以比较每一个可能的浮点数对(我假设),因此必须始终存在一个数字“b”,即 小于某个给定的数字“a”(不是+/-无穷大),并且 不存在小于“a”且大于“b”的数字“c” i、 e.“下一个”较小的浮点数表示数字。我想知道: 在C编程语言中,有一个较小的函数(float a)返回这样的数字b(或更大的函数(float a)) 如果不是,那么对于某些类型的数字“a”,如果有办法获得这些“下一个”数字,例如如果“a”是整数/零 尝试 float smaller(float a

由于有有限多个浮点数,并且可以比较每一个可能的浮点数对(我假设),因此必须始终存在一个数字“b”,即

  • 小于某个给定的数字“a”(不是+/-无穷大),并且
  • 不存在小于“a”且大于“b”的数字“c” i、 e.“下一个”较小的浮点数表示数字。我想知道:

  • 在C编程语言中,有一个较小的函数(float a)返回这样的数字b(或更大的函数(float a))
  • 如果不是,那么对于某些类型的数字“a”,如果有办法获得这些“下一个”数字,例如如果“a”是整数/零
  • 尝试

    float smaller(float a) return a - 0.00...001f;
    

    在我看来,这似乎是一个黑客,可能不适用于所有可能的输入,但我可能是错的,所以这就是为什么我转向你们。欢迎任何帮助。

    确实有。你要的是“nextafter”函数族

    这些可用于从一个浮点数移动到下一个浮点数,其方式与整数类型使用
    ++
    --
    的方式大致相同


    (这是C文档)。

    可以这样做。您提供了一个起始值
    x
    和一个目标值
    y
    ,它们返回从起始点到目标方向的下一个值。

    请阅读并查看。@Bathsheba:是的,在您的评论中编辑了该值。:-)我不知道这些功能的存在。很高兴知道!该死,也许我应该改变我的谷歌查询。tyvm;)