在C的编程中,总会遇到浮点数的处理,有的时候,我们只需要保留2位小数作为输出的结果,这时候,问题来了,怎样才能让cout输出指定的小数点后保留位数呢?
在C语言的编程中,我们可以这样实现它:
[cpp] view plain copy
printf("%2f", sample);
在C++中,是没有格式符的,我们可以通过使用setprecision()函数来实现这个需求。想要使用setprecision()函数,必须包含头文件#include <iomanip>。使用方式如下:
[cpp] view plain copy
cout << "a=" << setprecision(2) << a <<endl;
这时候,我们会发现,如果a的值为020001,输出的结果为a=02,后面第二位的0被省略了。如果我们想要让它自动补0,需要在cout之前进行补0的定义。代码如下:
[cpp] view plain copy
coutsetf(ios::fixed);
cout << "a=" <<fixed<< setprecision(2) << a <<endl; //输出a=020
这样,我们就可以得到020了。当然,如果想要关闭掉补0,只需要对fixed进行取消设置 *** 作。[cpp] view plain copy
coutunsetf(ios::fixed);
cout << "a=" << setprecision(2) << a <<endl; //输出a=02
我们的输出结果就又变回a=02了。参考代码
[cpp] view plain copy
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
float a = 020001;
coutsetf(ios::fixed);
cout << "a=" <<fixed<< setprecision(2) << a <<endl; //输出结果为a=020
coutunsetf(ios::fixed);
cout << "a=" << setprecision(2) << a <<endl; //输出结果为a=02
return 0;
}
可以在输出的时候限制小数点位数。当输出单精度浮点型float变量f时,可以用
printf("%2f", f);
来使输出结果保留两位有效数字。其中2就是代表保留两位,如果要保留三位就是%3f。用%0f就是只输出整数。
如果是双精度浮点数double,就需要用%2lf来使输出结果保留2位小数。c语言中用于描述小数的数据类型是float和double,float类型表示单精度浮点数,double表示双精度浮点数。
c语言中浮点数常量有两种表示方式:
1、定点表示:(必须有小数点)
如:0123,
123,
1230。2、指数表示:(e或e之前必须有数字,指数必须为整数)如:123e3
,123e2,
123e4。错误的写法:e-5
,12e-35,e3。
注意:浮点数常量默认为double类型,如果浮点数常量表示float类型,请在末尾添加小写的f或者大写的f,表示此常量为单精度浮点常量。
C语言中,两整数相除,带两位小数的结果,可以使用下面的方法:
参考代码如下:
#include<stdioh>
int main(){
int a,b;
printf("Please input a=");
scanf("%d",&a);
printf("Please input b=");
scanf("%d",&b);
printf("a/b=%2f",(float)a/b);
}
执行结果如下:
输出时%2f 即可指定输出两位小数 。
例题:
356f表示什么: 举个例子:%abf (a,b均为整数) 是说输出时按浮点数输出,共占a位。其中小数部分b位(若数值本身位数不足,后补0;超过则截断),小数点1位,整数部分a-b-1位(不足,前补空格;超出则按实际位数输出)。 当a或b为空时,a或b按系统默认取值。 所以356f 就是一共输出356位(前面很多空格),小数部分则按系统默认输出6位。
前面没有百分号: 没有%啊,那就直接输出356f 不过,这样可能会出现错误:前面的变量输出描述和后面的变量不对应。
用定点格式。
float 型 %2f 就是小数2位, %1f 就是小数1位。
double 型 用 %2f 就是小数2位, %1f 就是小数1位。
double 型 用 %2lf 就是小数2位, %1lf 就是小数1位。
扩展资料
算术运算符
用于各类数值运算。包括加(+)、减(-)、乘()、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
关系运算符
用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。
逻辑运算符
用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
位 *** 作运算符
参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
赋值运算符
用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)