浮点-什么是C++中的DBL_MAX

floating point - What is DBL_MAX in C++?

本文关键字:DBL MAX 中的 C++ 什么 浮点      更新时间:2023-10-16

我在网上找到了一个程序,发现作者在少数情况下使用了DBL_MAX。我不确定它是什么,所以我研究了一下,但没有太多解释它是什么以及它的用途。

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

代码中的一些使用示例如下:

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

正如其他人所说,C++中<cfloat>或C中<float.h>中定义的DBL_MAX是最大可表示有限浮点(双)数的值

在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;
}

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

1.79769e+308
1.79769e+308

它是在float.h<cfloat>中定义的常数。此标头描述特定系统的浮点类型的特性以及所使用的编译器实现。

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

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

maximum finite representable floating-point number

如果你发现类似的东西,可以看看这里。