C语言中.float都说是是显示7位有效数字

C语言中.float都说是是显示7位有效数字
#include
main()
{
float a;
a=2222.2;
printf("%f",a);
}

怎么这个程序的结果是2222.199951???为什么呢
7位有效数字的意思是,超过7位的就没有意义了。你这个结果四舍五入到7位,你看看是多少。
你的数扒态陆字会变是因为, 十进制是有限小数的春顷数,转闭缓到二进制可能是无限小数。0.2就是。
因为a不是2222.2,在电脑里存的是2进制,2222.2转成2进制会有误差。
是的,在C语言中float是显示小数点后六位小数轿芹,如果你想缩小的话那就在最后的printf(".2f",a);
至于点后面要多少你可以随便更改。
至于说为什么数字变小了呢,是因为计算机本来就不缓弯擅长对小数的处理,这扰帆闷有一个精度的问题。
显示小数点后的6位有效数字。
float a;
a = 2222.2F;
改成这样就行了,错误原因是a是float类型,2222.2默认为double类型正扰,强制类型禅清陪转换数据会有损失。加上F转换为贺蠢double后就可以给a赋值了。
← 上一篇: 下一篇: →