C编程从入门到实践
上QQ阅读APP看书,第一时间看更新

4.5.3 实型常量的类型

在C语言中,一个实型常量可以赋值一个单精度型或双精度型。C编译系统会根据变量类型截取实型常量中相应的有效位数的数字。在实型常量进行运算时,C编译系统将实型常量作为双精度来处理。对已定义的一个实型变量f进行如下运算。

    f=2.45678 * 4523.65

系统将2.45678和4523.65按双精度数据进行存储(占64位)和运算,得到一个双精度数,然后取前7位赋值给实型变量f。这样做可以保证计算结果更精确,但是这降低了运算速度。可以在数的后面加字母f或F(如1.65f,654.87F),这样编译系统就会按单精度(32位)数来处理。

一个实型常量可以赋值给一个单精度型、双精度型或长双精度型变量。根据变量类型截取实型常量中相应的有效数字。例如在下面的代码中,a已指定为单精度实型变量。

    float a;
    a=111111.111;

因为单精度型变量只能接收7位有效数字,所以最后两位小数不起作用。如果a改为双精度型,则能全部接收上述9位数字并存储在变量a中。