float 有效位7位?

来源:百度知道 编辑:UC知道 时间:2024/06/25 15:49:17
#include <stdio.h>
main()
{
int x;
float y;
scanf("%3d%f",&x,&y);
printf("x=%d,y=%f",x,y);
}
为什么输出为 x=123 y=45.000000 不是有8位吗???

float的有效位确实是7为,float另外还有规定,即,其有效数字最多为6位。
y=45.000000 这个输出很有迷惑性,但是这个数中小数点后的有效位数只有5个,因为45占了2位(总共7位有效位)
当你的输入改为x=123 y=45.123456时,你在看一下输出就明白了,其输出为:x=123,y=45.123455。这是y的有效位数变为了7位,最后的一位没有实际意义

float 的有效位数默认为6位。
这指的是浮点数据精确到小数点后6位,这个你可以再尝试一下。
此解答仅供参考。

从小数点开始算起

printf("x=%f,y=%f",x,y); 这样试一下

输入呢?