float默认保存6位小数,通过类比知道double保留12位小数

本文探讨了使用C语言中float和double类型存储小数时的精度限制。通过具体实例展示了float默认保留六位小数而double保留十二位,并介绍了如何通过格式化输出控制显示的小数位数。

 

float f6=51.232f;

printf("%f\n",f6);

这个的输出结果默认保留小数点六位,结果是51.231998,这个默认的六位不管你限制输出与否,里面只保留了六位,如果你限制输出到七位(%.7f),那么输出的结果是前五位准确,后面的数是近似值。

例如:

#include<stdio.h>
int main(){
    float f5=51.23232366342f;
    printf("%.7f\n",f5);

} 

结果如下:

限制输出不仅可以这样

printf("%.2f\n",f);

还可以这样

printf("%.*lf",2,f);

都是表达的是保留两位小数

 

 还想再强调一下,这个六位是特殊,还需要研究,或许对于我一个马上大三的学生来说,了解到这里就够了,但我想继续研究。

再就是double类型的值,或许可以和这个类比一下。等下再看看double类型的值。

 

类比一下double

我去试了一下的,类比推理成功,double自动保留的是12位。和float其他一样的

所以最后得出一个结论,当你用float保存小数时,不能大于六位了,用double时就不要大于12位(一般不会有这么大吧,额,也有这种情况,毕竟整数都有大整数),在我上面的例子里面都有错误,比如

#include<stdio.h>
int main(){
    float f5=51.23232366342f;
    printf("%.7f\n",f5);

} 
float f5=51.23232366342f;这一行就是我说的用float时,不要大于6位,显然我这个大于六位了,例子嘛,看看就好。double类似,自己推吧,打代码自己打打也可以的,加深影响。

有问题欢迎留言,大家一起学习。

转载于:https://www.cnblogs.com/simongreen/p/9365472.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值