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

#include <stdio.h>
main()
{
float a;
a=2222.2;
printf("%f",a);
}

怎么这个程序的结果是2222.199951???为什么呢

7位有效数字的意思是,超过7位的就没有意义了。你这个结果四舍五入到7位,你看看是多少。
你的数字会变是因为, 十进制是有限小数的数,转到二进制可能是无限小数。0.2就是。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-10
因为a不是2222.2,在电脑里存的是2进制,2222.2转成2进制会有误差。本回答被网友采纳
第2个回答  2013-05-01
是的,在C语言中float是显示小数点后六位小数,如果你想缩小的话那就在最后的printf(".2f",a);
至于点后面要多少你可以随便更改。
至于说为什么数字变小了呢,是因为计算机本来就不擅长对小数的处理,这有一个精度的问题。
第3个回答  2013-05-01
显示小数点后的6位有效数字。追问

可是 a=2222.2 显示小数点后六位不应该是 2222.200000吗?

追答

请参照楼上或者楼下,谢谢

第4个回答  2020-08-26
float a;
a = 2222.2F;
改成这样就行了,错误原因是a是float类型,2222.2默认为double类型,强制类型转换数据会有损失。加上F转换为double后就可以给a赋值了。

C语言中.float都说是是显示7位有效数字
7位有效数字的意思是,超过7位的就没有意义了。你这个结果四舍五入到7位,你看看是多少。你的数字会变是因为, 十进制是有限小数的数,转到二进制可能是无限小数。0.2就是。

C语言中数据的精度是什么意思
float浮点数7位有效数字。double双精度数16位有效数字。单精度数的尾数用23位存储,加上默认的小数 点前的1位1,2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以说单精度浮点数的有效位数是7位。 双精度的尾数用52位存储,2^(52+1) = 9007199254740992,10^16 < 9007199254740992...

...将一个double类型数据赋给float变量时,截取其前面7位有效数字...
整个float型的数据,能表示7位数据,及有效数有7位,小数点后几位看int型的整数部分有多少。如果是将整形赋给float型变量则算小数点之前的数一起,有效位数为7位;如:将23赋给float型,则结果为23.00000 如果是将整形赋给double型变量则算小数点之前的数一起,有效位数为16位;

c语言中float小数点后能有几位?
在C语言中,float类型的精度有限,它只能精确表示大约7位的有效数字。这意味着,如果你需要进行高精度的数值计算,特别是涉及到小数点后的精确度时,float可能并不理想。为了实现更准确的结果,建议选择Decimal类型,它能够提供更丰富的精度和更精确的小数表示能力。因此,如果你对数值的准确性有较高要求,...

C语言,float有效位为7位的问题。
float 有效数字位数是7位,不叫有效位, 不包含 小数点,也不包含 领头的0。例如: 1.234067, 0.1234067, 1234067.00, 0.001234067 -- 其中 1234067 是有效数字。也就是用科学记数法时,不考虑指数。7.2f , 7---总的长度(应当叫 场宽) ,含小数点,含正负号。

求大神:C语言中float型变量一定是7位有效数字吗 例如,1980.2是什么型变 ...
float类型 精度是6到7位 也就是6到7位有效数字 可以保证最大精确,再多意义不大。但并不是说 不能写更多了,写的多 存储的时候会近似存储。浮点型常数 默认是double类型 所以 1980.2也是double的 要默认float可以写作 1980.2f

关于C语言 float 保留七位有效数字问题
但是计算机存储小数,则存在有效数字这一说,7位有效数字指的是只能保证7位的有效数字,如果输入的有效数字多于7位,则不保证之后的位的数字的准确性。当然,你输入的数能保证了准确性。如果输入的数据多余七位有效数字,就会出错。比如1234567.8,输出后则会出现小数部分不正确。

c语言中float小数点后能有几位?
float 类型总共只能表示7位有效数字,如果需要非常准确的数字,请考虑使用 Decimal 数据类型

c中的float和double的有效数字和精度各是多少?
1. float类型:有效数字:通常为7\\~8位。精度:能精确到小数点后6\\~7位。double类型:有效数字:通常为15\\~16位。精度:能精确到小数点后14\\~15位。但实际的精度和有效数字可能会因具体实现和编译器而异。详细解释:在C语言中,float和double是用于表示浮点数的数据类型。它们的名称分别表示单精度...

c语言中float型变量有效数字是七位,怎么看一个数的有效位数,和数学上...
不是,变量内在给的是八位的表示,这种类型有正负,所以第一位表示正负,所以有效数字是七位,无符号型有效数字是八位,还有长整型,他是十五位有效数字

相似回答