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

C语言,通过运算得到了一个float类型的变量,如何查看这个变量的小数点后有几位数?... C语言,
通过运算得到了一个float类型的变量,如何查看这个变量的小数点后有几位数?
展开
 我来答
金色潜鸟
推荐于2018-02-11 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5708万
展开全部
可以查看,(例如,用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位得 20
printf("%.15g\n",x); // 1.22999999327834e-018 -- 这个 不行了。
飞花的月
2013-03-11 · TA获得超过324个赞
知道答主
回答量:60
采纳率:0%
帮助的人:50.5万
展开全部
默认六位小数,不够就补零,比如讲1赋给浮点型变量a,输出是1.000000
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
year苏张杨
2013-03-11 · TA获得超过249个赞
知道答主
回答量:261
采纳率:0%
帮助的人:69.6万
展开全部
理论上是6位,但是输出时,可以限制小数位。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thebabe
2013-03-11 · TA获得超过829个赞
知道小有建树答主
回答量:729
采纳率:66%
帮助的人:519万
展开全部
printf("%15.15g",var);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式