www.rtmj.net > C语言F与lF保留几位小数

C语言F与lF保留几位小数

默认6位,不过可以通过程序控制为想要的位数;如: printf("%12.15lf\n",x);表示输出占12格的小数位数为15为的x的值; printf("%.8lf\n",x);表示输出小数位数为8为的x的值.

可以通过printf函数中的输出格式说明符来实现保留一位小数点.float a = 3.14159; printf("%.1f", a); // 输出结果为3.1 printf("%x.yf", a); // 其中x, y都是常量,a是待输出的变量.// 对于变量a的整数部分输出,如果a的整数部分不足x位,则在前面补空格,若大于x位,则按实际位数输出// 对于变量a的小数部分输出,如果a的小数部分不足x位,则在后面补0,若大于x位,则按四舍五入准则输出y位小数

float 默认为8位小数.如果是输出函数中你可以 %.2f 把小数位数变成两位.再看看别人怎么说的.

printf中 %f %lf等,有输出的小数点控制~~~~~~

由于精度的原因,输出%lf和%f的数据不同,可能会造成错误.主要有一下四点区别:1、代表的数据类型不同%f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double).2、有效数字位数不同 单精度浮点数有效数字保证6位,部分7位,双精度浮点数有效数字保证15位,部分16位.3、所能表示数的范围不同 单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38,双精度浮点的表示范围:-1.79E+308 ~ +1.79E+3084、在程序中处理速度不同 一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快.

#include <stdio.h> main() { double a; printf("请输入一个四位小数:\n"); scanf("%lf",&a);//双精度应该是的%lf a*=100;// 扩大100倍,举个例子:a=123.4567,a=a*100,则a=12345.67 a+=0.5;//加0.5进行四舍五入a=12346.17 a=(int)a;//这个地方是想保留两位小数,后边的舍去,所以进行强制类型转换.a/=100;//上面扩大100倍,现在要对其缩小100 printf("结果是:%f\n",a);//这样就行了,或者printf("结果是:%.2f\n",a); }

printf("%2f\n",d);//跟printf("%f\n",d);的效果在这是一样的 改成:printf("%.2f\n",d); //加小数点,后面数字是几就是保留几位小数

要输出x位小数,可以使用printf中的格式控制.如果要输出的是float类型,可以使用f格式.如果是double类型,可以使用lf格式.比如,要输出double类型变量d, 保留5位小数,可以使用语句 printf("%.5lf",d); 而x是变量时,可以使用 printf("%.*lf",x,d); 即通过.*匹配x.

1、用了float是否能用%lf,double能否用%f,%f和%lf分别保留几位小数-》 float可以用%lf, 值当做双精度double来显示,结果与%f没有不同.double用%f同样也是可以的,不过可能会有问题,等同于(float)double_var 即先将double变量值转为

%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号.其中:float,单精度浮点型,对应%f.double,双精度浮点型,对应%lf.在用于输出时:float类型可以使用%lf格式,但不会有任何好处.double类型如果使用了%f格式可能会导致输出错误.在用于输入时:double 类型使用了%f格式,会导致输入值错误.float类型使用double类型不仅会导致输入错误,还可能引起程序崩溃.所以在输入输出时,一定要区分好double和float,而使用对应的格式符号.

友情链接:xmlt.net | zxqs.net | qhgj.net | wkbx.net | lhxq.net | 网站地图

All rights reserved Powered by www.rtmj.net

copyright ©right 2010-2021。
www.rtmj.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com