我如何获得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
)。