C++提供了三种浮点类型:float、double和long double。我很少在我的代码中使用浮点数,但当我使用时,总是会在看似无害的代码行上收到警告:
float PiForSquares = 4.0;
问题在于字面量4.0是一个双精度浮点数(double),而不是单精度浮点数(float) - 这很让人恼火。
对于整数类型,我们有short int、int和long int,这很直观。为什么C语言没有short float、float和long float呢?还有,“double”这个词从哪里来的呢?
编辑:看起来浮点类型的关系与整数类型类似。double至少要和float一样大,而long double至少要和double一样大。除此之外并没有其他的精确性/范围保证。
<float.h>
中有很多保证,特别是像FLT_DIG这样的东西(我认为它保证能够表示5个小数位,即从0到99999的整数)。 - tc.