gpt4 book ai didi

double - 下一个更高/更低的 IEEE double

转载 作者:行者123 更新时间:2023-12-03 11:53:59 24 4
gpt4 key购买 nike

我正在做高精度的科学计算。在寻找各种效果的最佳表示时,我不断提出想要获得下一个更高(或更低) double 数的理由。本质上,我想要做的是在 double 的内部表示中的最低有效位上加一个。

难点在于 IEEE 格式并不完全统一。如果要使用低级代码并实际向最低有效位添加一个,则结果格式可能不是下一个可用的 double 值。例如,它可能是一个特殊的数字,例如 PositiveInfinity 或 NaN。还有一些次正常值,我没有声称理解它们,但它们似乎具有与“正常”模式不同的特定位模式。

可以使用“epsilon”值,但我从未理解它的定义。由于 double 值不是均匀间隔的,因此不能将单个值添加到 double 以产生下一个更高的值。

我真的不明白为什么 IEEE 没有指定一个函数来获得下一个更高或更低的值。我不能是唯一需要它的人。

有没有办法获得下一个值(没有某种尝试添加越来越小的值的循环)。

最佳答案

有一些函数可以做到这一点,但它们可能取决于您使用的语言。两个例子:

  • 如果您可以访问一个不错的 C99 数学库,您可以使用 nextafter (以及它的 float 和 long double 变体, nextafterfnextafterl );或 nexttoward家庭(将 long double 作为第二个参数)。
  • 如果你写 Fortran,你有 nearest 内在可用

  • 如果您不能直接从您的语言中访问这些,您还可以查看它们是如何以免费提供的方式实现的,例如 this one .

    关于double - 下一个更高/更低的 IEEE double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1245870/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com