当前位置:  开发笔记 > 编程语言 > 正文

最小浮点数(最接近零)

如何解决《最小浮点数(最接近零)》经验,为你挑选了1个好方法。

我正在尝试找到可以存储在单个精确浮点数中的最小值(最接近零).使用标题我可以得到值,但如果我把它变小,浮动仍然可以保持它,它给出了正确的结果.这是一个用g ++ 5.3.0编译的测试程序.

#include 
#include 
#include 

using namespace std;

int main()
{
    float a = numeric_limits::max();    
    float b = numeric_limits::min(); 

    a = a*2;
    b = b/pow(2,23);


    cout << a << endl;
    cout << b << endl;
}

正如我所预料的那样,"a"给出无穷大,但是"b"在将最小值除以2 ^ 23之后仍然保持良好的结果,之后它给出0.

给出的值numeric_limits::min()是2 ^( - 126),我相信这是正确答案,但为什么我的程序上的浮点数保持这么小的数字?



1> Pete Becker..:

std::numeric_limits::min对于浮点类型,给出了可以在不损失精度的情况下表示的最小非零值.std::numeric_limits::lowest给出最小的可表示值.IEEE表示是一个次正规值(以前称为非规范化).

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有