%f :以浮点型数据形式输出,浮点型也就是实数。一共保留6位小数,%f表示实数,保留6位小数,输出float类型的值,小数位数不固定,只是有效位数是7位,输出格式也不一定,不同编译器不一样,比如很多编译器会自动消除小数点之后的,位于最后的那些0,其类型说bai明符为float 单精度说明du符,zhidouble 双精度说明符。在Turbo C中单dao精度型占4个字节(专32位)内存空间,其数属值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。float a;double b;a=33333.33333;b=33333.33333333333333; 从本例可以看出,由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。b 是双精度型,有效位为十六位。但Turbo C 规定小数后最多保留六位,其余部分四舍五入,6位www.mh456.com防采集。
准确的说是输出有效位是七位更多追问追答追答而不能说小数点后几位,应该看有效数字的位数追问
如果就是以%f输出的话,一般编译系统输出六位小数. 如果你在前面加上数字,例如 float a; a=3.52; printf("a=%7.3f",a); 的运行结果为a= 3.520 %7.3f即输出3位小数,整个数字占7位,如上述程序3.520共5位数字,前面补两个空格.
第四个追答有问题吗追问
需要注意,%f如果没有规定长度或小数位数的话,就是输出6位小数 不论对应的数是什么类型,都输出6位小数 因为你的x是4位小数,少于6位 所以会在后面加两位小数补齐,至于那两位数是什么,要看后面的内存单元中存的是什么 (C语言会出现意外的内存
这个最后一个就输出六位小数,上面那个为什么只输出三位小数追答你把最后一个图拍全一点追问就是表格的最后一条追答我明白你什么意思了追问嗯,那为什么不一样呢?追答第一个应该是
printf("%f",fVal);//这是浮点默认输出格式,小数点保留6位 printf("%.1f",fVal);//.1是说明,小数点保留1位,对其后的数据进行四舍五入 printf("%.2f",fVal);//.2是说明,小数点保留2位,对其后的数据进行四舍五入,你想保留几位,就用点几 pri
实际代码出来的效果可以看到我的图片吗追问但是你是lf输出的如果按f呢追答
输入时float 用 %f, double 用 %lf, 这是约定(规定)。数据可以用定点格式,也可以 E 格式。 输出float 用 %f, double 可以用 %lf, 也可以用 %f, 这将按默认 定点格式输出。没给 场宽和小数位数 时 按 默认位数输出。 若给了 场宽和小数位数 时
看得到吗追问看到了是书上的有问题吗追答恩其实关于f,只能保证七位有效数字所以你看到最后多了一个一对吧七位之后是不保证数据的正确性的追问嗯,谢谢,我会采纳的,还能再问你一个问题吗?追答私信吧本回答被提问者采纳
不是 你可以试试%.4f 意思就是保留4位小数 ;%.0f就是整数了。
一般情况是6位。更多追问追答追问
第四个为什么不是六位追答书上弄错了。
内容来自www.mh456.com请勿采集。