據我知道浮點值的形式爲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