c语言%f小数位第六位是错的,c语言中输出浮点型数据,如果不指定输出位数,%f输出几位小数?...

%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位数字,前面补两个空格.

u=167425745,440640389&fm=214&gp=0.jpg

1b929a70a9fc0a007362e6ce8facb90f.png

5ac2de5fcf1a0c6aa0c58da0da22d0a7.png第四个追答有问题吗追问

需要注意,%f如果没有规定长度或小数位数的话,就是输出6位小数 不论对应的数是什么类型,都输出6位小数 因为你的x是4位小数,少于6位 所以会在后面加两位小数补齐,至于那两位数是什么,要看后面的内存单元中存的是什么 (C语言会出现意外的内存

e9cf84d5295926510a2b6f1ccb4ec641.gif

2db31c5f1a55b7b5e1f0a5f5e480d920.png

06fb5aa38b331122be7b91c42a1da2c5.png这个最后一个就输出六位小数,上面那个为什么只输出三位小数追答你把最后一个图拍全一点追问就是表格的最后一条追答我明白你什么意思了追问嗯,那为什么不一样呢?追答第一个应该是

printf("%f",fVal);//这是浮点默认输出格式,小数点保留6位 printf("%.1f",fVal);//.1是说明,小数点保留1位,对其后的数据进行四舍五入 printf("%.2f",fVal);//.2是说明,小数点保留2位,对其后的数据进行四舍五入,你想保留几位,就用点几 pri

u=965151480,3063026990&fm=214&gp=0.jpg

e6e13ea5f2135ccd0f90dde5983fb5fb.png

7c9589709e8b9f9230eec7b49213e212.png实际代码出来的效果可以看到我的图片吗追问但是你是lf输出的如果按f呢追答

输入时float 用 %f, double 用 %lf, 这是约定(规定)。数据可以用定点格式,也可以 E 格式。 输出float 用 %f, double 可以用 %lf, 也可以用 %f, 这将按默认 定点格式输出。没给 场宽和小数位数 时 按 默认位数输出。 若给了 场宽和小数位数 时

c933019bb5682f375e4cf5e88a2a86e5.gif

a5002c238638849997adeacaa566f1d7.png

173fc1280cba0fe325883020f035a8f3.png看得到吗追问看到了是书上的有问题吗追答恩其实关于f,只能保证七位有效数字所以你看到最后多了一个一对吧七位之后是不保证数据的正确性的追问嗯,谢谢,我会采纳的,还能再问你一个问题吗?追答私信吧本回答被提问者采纳

不是 你可以试试%.4f 意思就是保留4位小数 ;%.0f就是整数了。

u=2018397750,848507775&fm=214&gp=0.jpg

一般情况是6位。更多追问追答追问

e5650170585f75a3d0ee36cf39796f36.png

cac7b6c38fc6849eeb49fa4539939f81.png第四个为什么不是六位追答书上弄错了。

内容来自www.mh456.com请勿采集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值