C 如何获得双倍最大值?

C 如何获得双倍最大值?,c,double,C,Double,AFAIK,C只支持几种数据类型: int, float, double, char, void enum. 我需要存储一个高达10位数的数字。因为我得到了一个低10位数的 最大整数 ,我想我需要一个双人房 没有双\u MAX。我在互联网上找到了一个 dBLX MAX < /Cord>,上面说这是遗留的,也似乎是C++。我需要双倍吗?为什么没有DOUBLE\u MAX?DBL\u MAX在中定义。它在unix上的可用性被标记为“(遗留)” (链接到unix标准,尽管您没有unix标记,因为这可

AFAIK,C只支持几种数据类型:

int, float, double, char, void enum.
我需要存储一个高达10位数的数字。因为我得到了一个低10位数的

最大整数

,我想我需要一个双人房


没有
双\u MAX
。我在互联网上找到了一个<代码> dBLX MAX < /Cord>,上面说这是遗留的,也似乎是C++。我需要双倍吗?为什么没有
DOUBLE\u MAX

DBL\u MAX
在中定义。它在unix上的可用性被标记为“(遗留)”


(链接到unix标准,尽管您没有unix标记,因为这可能是您找到“遗留”符号的地方,但其中显示的浮点值的大部分内容。h也在C标准中返回到C89)

您正在查找
float.h
标题。

INT\u MAX
只是中的一个定义。您不清楚是否需要存储整型值或浮点值。如果是整数,则使用64位编译器,使用
LONG
LLONG
表示32位)。

中获得整数限制。浮点特性在C++中的C. > <代码>中定义,首选的版本通常是代码> STD::MultCimultLime::()(代码< >包含< /代码>)。

关于你原来的问题,如果你想要一个更大的整数类型而不是<代码>长,你可能应该考虑<代码>长Lo/<代码>。这并没有正式包含在C++98或C++03中,但它是C99和C++11的一部分,因此所有当前的编译器都支持它。

它在标准float.h include文件中。您想要使用
DBL\u MAX

使用
double
存储大整数是可疑的;可以可靠地存储在
double
中的最大整数远小于
DBL_MAX
。您应该使用
long-long
,如果这还不够,您需要自己的任意精度代码或现有库。

1)正如其他人所指出的,您不需要
double
,您需要64位整数类型(或者
long-long
,或者
uint64\u-t
)。2) 如果使用的是
双精度
,则不需要
DBL_MAX
(这是可以存储的最大数字),而需要的是可以存储的有效位数。(如果无法区分9999999999和9999999 8,那么能够存储9999999对您没有任何好处)。在任何情况下,在大多数系统上,
double
可以精确地存储您所要求的大小的所有整数。在大多数系统上,double可以精确地存储小于9007199254740993的所有正整数。C有多种类型:
char、无符号char、有符号char、short、unsigned short、int、unsigned int、long、unsigned long、long、,无符号长,浮点,双,长双,空< /代码>,枚举,结构,函数,数组,指针,所有这些。我怀疑“遗产”来自一些C++站点,希望你使用他们的神秘STD数值限制系统而不是宏,因为“宏是脏的”或者……就像我说的,我所看到的唯一一个将它标记为LEGACY的地方是在一个unix标准中,该标准讨论了它在limits.h中的存在,而不是DBL_MAX作为一个2012年抱怨没有括号的人,即:std::numeric_limits::MAX()。确实尝试了ans的快速编辑,但编辑太小。至少,对应的
min
很棘手(双精度类型为正数):,因此
numeric\u limits::lowest()
更容易预测: