完整输出double形数据,使用%f格式。
C99标准规定用%f输出double类型,%lf等价于%f(可以在"%"和字母之间加小写字母l, 表示输出的是长型数)。
c语言是%if对应double,%f对应float。
scanf():“%lf”用于double类型,“%f”用于float类型printf():“%f”既可用于double类型,也可用于float类型,意思是指“保留6位小数”。
%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。
可以在"%"和字母之间插进数字表示最大场宽。例如: %9.2f 表示输出场宽为9的浮点数,其中小数位为2,整数位为,小数点占一位,不够9位右对齐。
如果字符串的长度、或整型数位数超过说明的场宽,将按其实际长度输出。但对浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;若小数部分位数超过了说明的小数位宽度,则按说明的宽度以四舍五入输出。
如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,小数点前的数字代表最小宽度。例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串;若大于9, 则第9个字符以后的内容将被删除。
转换的基本规则是“按数据长度增加的方向进行转换”,以保证精度不降低。比如int型数据和long型数据进行相加或相减运算时,系统会先将int型数据转换成long型,然后再进行运算。这样的话运算结果的精度就不会降低。
在运算时,程序中所有的float型数据全部都会先转换成double型。即使只有一个float型数据,也会先转换成double型,然后再进行运算。为什么要这样呢?因为CPU在运算的时候有“字节对齐”的要求,这样运算的速度是最快的。