如果查看一个float类型的变量小数点后有几位数

[复制链接]
查看11 | 回复4 | 2018-2-11 12:38:01 | 显示全部楼层 |阅读模式
可以查看,(例如,用sprintf, 转成字符串,一个字符一个字符地统计。)但得到的结果不一定可靠,或不是期望的。 原因是 计算机内部用 2进制,我们输入输出用 10进制。 10进制到2进制,小数部分常 “化不净”,2进制再转回10进制,又 “化不净”。float类型的变量,精度只有 6-7 位有效数字,超出7 位又引进 “截断误差”。例如:float x = 0.0000000000000000012300; 眼睛可以看出有20位小数,不是22位小数。但通过计算机,化不净,引进 截断误差:printf("%g\n",x);//1.23e-018
--- 这个可以,18+2位得 20printf("%.15...
回复

使用道具 举报

千问 | 2018-2-11 12:38:01 | 显示全部楼层
默认六位小数,不够就补零,比如讲1赋给浮点型变量a,输出是1.000000...
回复

使用道具 举报

千问 | 2018-2-11 12:38:01 | 显示全部楼层
理论上是6位,但是输出时,可以限制小数位。...
回复

使用道具 举报

千问 | 2018-2-11 12:38:01 | 显示全部楼层
printf("%15.15g",var);...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行