我如何获得DOUBLE_MAX?

AFAIK,C只支持一些数据types:

int, float, double, char, void enum. 

我需要存储一个数字,可以达到高10位数字。 因为我得到一个低10位数字

INT_MAX

,我想我需要一个双。

<limits.h>没有DOUBLE_MAX。 我在互联网上发现了一个DBL_MAX ,表示这是LEGACY,而且似乎是C ++。 是我需要的双倍吗? 为什么没有DOUBLE_MAX?

DBL_MAX<float.h>定义。 它在unix上的<limits.h>可用性是标记为“(LEGACY)”的。

(链接到unix标准,即使你没有unix标签,因为这可能是你find了“LEGACY”符号的地方,但是在那里为float.h显示的大部分也是在C标准中回到C89)

您可以在<limits.h><climits>获得整数限制。 C中的浮点特性在<float.h>中定义。在C ++中,首选版本通常是std::numeric_limits<double>::max() (为此包括#include <limits> )。

至于你原来的问题,如果你想要一个更长的整数types,你应该考虑long long 。 这并没有正式包含在C ++ 98或C ++ 03中,而是C99和C ++ 11的一部分,因此所有合理的编译器都支持它。

它在标准的float.h包含文件中。 你想要DBL_MAX

double来存储大整数是可疑的; double可靠存储的最大整数比DBL_MAX 。 你应该使用long long ,如果这还不够,你需要自己的任意精度代码或现有的库。

您正在寻找float.h头。

INT_MAX只是limits.h中的一个定义。 您不清楚是否需要存储整数或浮点值。 如果是整数,并使用64位编译器,请使用LONG (32位的LLONG )。