鱼C论坛

 找回密码
 立即注册
查看: 846|回复: 2

[已解决]单精度定义问题

[复制链接]
发表于 2021-12-7 22:30:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
(   )(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 救救我
最佳答案
2021-12-15 02:05:52
printf("%f",...)函数中,默认情况下,单/双精度的小数位数默认均为6位。
(1)单精度实数的有效位数一般为7位,输出6位小数。
(2)双精度数有效位数一般为16位,输出6位小数。
也就是说,如果不指定小数位数,默认情况下,会直接输出6位小数。
如果要想调整输出小数的位数,需要使用精度格式符。精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-13 19:08:40 | 显示全部楼层
默认保留六位小数,除非在输出控制符加大小比如要输出2.0那么printf(“%.1f”,(x,y));
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-15 02:05:52 | 显示全部楼层    本楼为最佳答案   
printf("%f",...)函数中,默认情况下,单/双精度的小数位数默认均为6位。
(1)单精度实数的有效位数一般为7位,输出6位小数。
(2)双精度数有效位数一般为16位,输出6位小数。
也就是说,如果不指定小数位数,默认情况下,会直接输出6位小数。
如果要想调整输出小数的位数,需要使用精度格式符。精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 07:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表