C 如何获得双倍最大值?
AFAIK,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标记,因为这可
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()
更容易预测: