默认情况下​​3.2​​​被视为​​double​​​; 所以为了强制编译器将其视为​​float​​​,你需要​​f​​在最后编写。


float a = 3.2; if ( a == 3.2 )     cout << "a is equal to 3.2"<<endl; else     cout << "a is not equal to 3.2"<<endl;  float b = 3.2f; if ( b == 3.2f )     cout << "b is equal to 3.2f"<<endl; else     cout << "b is not equal to 3.2f"<<endl;


输出:


a不等于3.2  b等于3.2f


 

小数点和f有不同的目的,所以它不是真正的.f

你必须明白,在C和C ++中,所有内容都是打字的,包括文字。

3是字面整数。3.是文字双3.f是文字浮点数。

IEEE浮点数的精度低于双精度浮点数。float仅使用32位,22位尾数和10位指数(包括每个的符号位)。

double给出了更多的准确性,但有时你不需要这样的准确性(例如,如果你在计算的数字只是首先估计的数字),浮点数给出的就足够了,如果你存储了大量的数据(例如,处理大量时间序列数据),这可能比准确性更重要。

因此浮动仍然是一种有用的类型。

您不应该将此与printf和等效语句使用的符号混淆。