据我知道浮点值的形式为N * 2^E的,与C++标准在哪里定义浮点类型的值范围?
- 浮动范围为N = - (2^23-1) - (2^23-1),和E = -126 - 127,
- 双范围为N = - (2^52-1) - (2^52-1),和e = -1022 - 1023
我一直在寻找通过C++标准,但未能找到标准指定的地方,或者强制将float,double和long double类型与其他(IEEE)标准中定义的范围相关联。我在3.9.1.8中发现的唯一相关事物是:
有三种浮点类型:float,double和long double。 double类型至少提供与float相同的精度,long double类型的精度至少与double相当。 float类型的值的集合是类型double的值集合的子集;类型double的值集合是long double类型的值集合的子集。浮点类型的值表示是实现定义的。
而且没有提及该类型提供的最小范围。
标准在哪里/如何指定浮点类型的(最小?)值范围?或者编译器能够自由选择任何值范围,并且仍然符合标准?
https://docs.microsoft.com/en-us/cpp/c-language/type-float https://docs.microsoft.com/en-us/cpp/c-language/type-double – Andrew 2017-07-08 00:12:40