据我所知,浮点值的形式为n* 2^e,与
我查看了C++标准,但没有找到标准指定此标准的位置,也没有规定浮动、双和长双类型与其他(IEEE)标准中定义的范围的关联。我在3.9.1.8中发现的唯一相关问题是:
有三种浮点类型:浮点数、双浮点数和长浮点数。类型double提供的精度至少与浮点数一样高,而long double提供的精度至少与双精度相同。类型float的值集是类型double的值集的子集;类型double的值集是long double类型的值集的子集。浮点类型的值表示是实现定义的.
也没有提到类型所提供的最小范围。
标准在哪里/如何指定(最小值)?浮点类型的值范围?或者编译器可以自由选择任何值范围,但仍然是标准兼容的?
发布于 2009-11-29 20:46:20
与整数限制一样,float、double和long double的限制是从C标准导入的。常数FLT_MAX、DBL_MAX和LDBL_MAX的最小值是1E+37。对于它们的*_MIN变体,最大值是1E-37。
发布于 2009-11-29 19:55:05
您所引用的是关于C++中浮点类型的所有保证。正如它所说的,它们的表示是由实现定义的。
但是,您可以使用std::numeric_limits模板查询有关限制以及类型是否为IEC 559 (IEEE754)指定类型的信息。
发布于 2009-11-29 19:55:20
标准没有指定这样的东西,因为它们通常依赖于硬件,并且随着时间的推移而改变。虽然现在32位被认为是一种标准,但在10年内,在少于64位的时间内做事情可能看起来可能令人讨厌。
https://stackoverflow.com/questions/1816552
复制相似问题