c语言float精确到几位

如题所述

float的有效数字是6或7位,第7位不一定有效,前6位一定有效//具体翻书
下面解释有效数字是6位的意思:
float f = 3.123456
printf("%f",f);
输出结果可靠数据是前6位,即,3.12345
float f = 123456.789
printf("%.2f",f);
因为要求输出结果保留两位,所以输出结果小数点后会有两位,但是!这两位小数保留的毫无意义,因为它不可靠,可靠的6位有效数字已经被整数部分的123456占完了。
根据以上,楼主可以自行给 f 赋各种不同值,多次调整整数部分与小数部分的位数和大小,查看输出,相信你会发现,输出结果,从左数,只有前6位是一定准确的!
如例1:
#include<stdio.h>
int main () {
float f = 1234560.991f;
printf("%f",f);
return 0;
}
输出结果是:1234561.000000
例2:
#include<stdio.h>
int main () {
float f = 1.913757f;
printf("%.10f",f);
return 0;
}
输出结果是1.9137569666,对比,只有5位小数是精确的,答案还是6位。
综上,所以精确度是6位,意思是前6位一定精确,6位以后的可能精确,可能不精确。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-10-23
C语言中,float 为单精度浮点数,占4字节,其数值范围为3.4E-38 ~3.4E+38或者-(3.4E-38 ~3.4E+38)。
和精确到小数点后多少位的概念毫无关系。