gpt4 book ai didi

c++ - 将最小可能的 float 添加到 float

转载 作者:IT老高 更新时间:2023-10-28 13:22:03 26 4
gpt4 key购买 nike

我想将 float 的最小可能值添加到 float 。因此,例如,我尝试这样做以获得 1.0 + 可能的最小 float :

float result = 1.0f + std::numeric_limits<float>::min();

但是在这样做之后,我得到了以下结果:

(result > 1.0f) == false
(result == 1.0f) == true

我使用的是 Visual Studio 2015。为什么会发生这种情况?我能做些什么来绕过它?

最佳答案

如果你想要 1 之后的下一个可表示的值,有一个函数叫做 std::nextafter ,来自 <cmath>标题。

float result = std::nextafter(1.0f, 2.0f);

它返回从第一个参数开始沿第二个参数方向的下一个可表示值。所以如果你想找到下一个低于 1 的值,你可以这样做:

float result = std::nextafter(1.0f, 0.0f);

将最小的正可表示值加到 1 不起作用,因为 1 和下一个可表示值之间的差大于 0 和下一个可表示值之间的差。

关于c++ - 将最小可能的 float 添加到 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41317661/

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