C++中的DBL_MAX是什么?

13

我在查看一份我在线上找到的程序,发现作者在几个情况下使用了DBL_MAX。我不确定它是什么,所以进行了一些研究,但并没有太多解释它是什么以及它的用途。

有人能解释一下它是什么以及为什么应该使用它吗?

代码中使用它的一些示例:

localT.maxTemp = -DBL_MAX;
double avg = -DBL_MAX;

2
http://en.cppreference.com/w/cpp/types/climits - juanchopanza
7
我稍微做了一些研究,或者可能根本没有做过。你考虑过使用谷歌吗?前十几个结果中包括了许多在这个网站上的问题,它们会回答你的问题。 - user1864610
9
我很震惊,有权投票关闭这个问题的人会说它“不清楚你在问什么”。 - Casey
3个回答

40

正如其他人所说的那样,在C++中,DBL_MAX定义在头文件<cfloat>或C语言中的<float.h>中,是表示最大可表示有限浮点数(双精度)的值。

在C++中,您可以使用头文件<limits>中定义的std::numeric_limits类来获取相同的值。

std::numeric_limits<double>::max()

以下是同时使用这两种方法的示例:

#include <iostream>
#include <cfloat>
#include <limits>

int main() 
{
    std::cout << DBL_MAX << std::endl;
    std::cout << std::numeric_limits<double>::max() << std::endl;


    return 0;
}

在在线C++编译器www.ideone.com上,输出为

1.79769e+308
1.79769e+308

7

这是在float.h<cfloat>中定义的一个常量。该头文件描述了特定系统和编译器实现所用的浮点类型的特征。

DBL_MAX是最大的有限可表示浮点数。

http://en.cppreference.com/w/cpp/types/climits


0

最大有限可表示浮点数。

如果您发现类似的内容,请点击此处查看。



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接