单精度定义问题
( )(7)若有定义语句:float x=1.0,y=2.0;,当执行语句printf(“%f”,(x,y));后,其输出结果为 。A.1.0 B.2.0 C.1.000000 D.2.000000
为啥单精度输出是2.000000而不是2.0 救救我{:5_104:} 默认保留六位小数,除非在输出控制符加大小比如要输出2.0那么printf(“%.1f”,(x,y)); printf("%f",...)函数中,默认情况下,单/双精度的小数位数默认均为6位。
(1)单精度实数的有效位数一般为7位,输出6位小数。
(2)双精度数有效位数一般为16位,输出6位小数。
也就是说,如果不指定小数位数,默认情况下,会直接输出6位小数。
如果要想调整输出小数的位数,需要使用精度格式符。精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
页:
[1]