c++保留几位小数输出(百分数形式,保留几位有效数字,设置宽度)

以下几种控制格式符的头文件为:

#include <iomanip>

1.输出保留小数点后几位

cout<<setiosflags(ios::fixed)<<setprecision(n);
//保留几位n就是几

2.保留n位有效数字

cout << setprecision(n);
//保留几位n就是几

3.设置输出宽度为n

cout<<setw(n);
//宽度为n

举个例子

输出浮点数7.5612,设置输出宽度为10,输出精度为4(小数点后保留3位有效数字或者保留4位有效数字)并换行

cout<<setw(10)<<setprecision(4)<<7.5612<<endl;

再举个题目为例

【题目描述】
某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照0-18、19-35、36-60、61以上(含61)四个年龄段统计的患病人数占总患病人数的比例。
【输入】
共2行,第一行为过往病人的数目n(0<n≤100),第二行为每个病人患病时的年龄。
【输出】
按照0-18、19-35、36-60、61以上(含61)四个年龄段输出该段患病人数占总患病人数的比例,以百分比的形式输出,精确到小数点后两位。每个年龄段占一行,共四行。
【输入样例】
10
1 11 21 31 41 51 61 71 81 91
【输出样例】
20.00%
20.00%
20.00%
40.00%

代码如下

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{ 
int i,n,a[100];
double b[4]={ 0,0,0,0};
cin>>n;
for(i=0;i<n;i++)
    cin>>a[i];
for(i=0;i<n;i++)
{ 
    if(a[i]>=0&&a[i]<=18)b[0]++;
    if(a[i]>=19&&a[i]<=35)b[1]++;
    if(a[i]>=36&&a[i]<=60)b[2]++;
    if(a[i]>=61)b[3]++;
}
cout<<setiosflags(ios::fixed)<<setprecision(2);
for(i=0;i<4;i++)
{ 
    b[i]=b[i]*100.0/n;
    cout<<b[i]<<"%"<<endl;
}
return 0;
}
    原文作者:Iron 猿
    原文地址: https://blog.csdn.net/qq_45974279/article/details/104241375
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞