C++控制小数位数输出

#include<iostream>
#include"math.h"
#include <iomanip> 
using namespace std;
int main(){
    int m;
    double n,sum=0;
   // int qiuhe(int i,int n);
    cin>>n>>m;
    //a=n;
   for(int i=0;i<m;i++){
    sum+=n;
    n=sqrt(n);
}
    cout<<fixed<< setprecision(2)<<sum;//控制小数点后两位输出
    return 0;
}

C++输出格式

C++中默认输出有效位数是6位,即

C++控制小数位数输出

则输出:

221.11

1.11011

199967 //6位有效数字,自动截取保存六位

1.99967e+006 //六位以上且无法省略显示将会变为指数显示

那么如果需要显示多位,可以通过调整输出格式,那么设置c++输出格式,主要有两种办法:

1、在输入流与输出流中使用控制符

2、用流对象的成员函数控制输出格式

二者有什么区别,用法上呢,第一种就是使用控制符设置输出显示,例如:

cout<<setw(10)<<a<<endl;//设置了输出的宽度为10,多余默认用空格补齐

而第二种,通过调用流对象cout中用于控制输出格式的成员函数来控制输出格式,例如:

cout.width(10)//设置了输出的宽度为10,同样的多余的默认用空格补齐

而值得一提的是,从影响范围上看,笔者原以为第二种调用成员函数将改变全局设置,但是实际上二者都只能影响下一次的输出格式,例,使用控制符:

C++控制小数位数输出

输出为:

1

1

1

而,调用输出流对象的成员函数:

C++控制小数位数输出

输出为:

1

1

1

1

再来具体看看两种办法的一些用法

1、在输入流与输出流中使用控制符

1)设置宽度setw(n),n即为输出固定宽度,默认以空格填充,如果加上setfill('0')即以‘0’为填充,‘’内可改为其他字符,例如:

C++控制小数位数输出

输出:

0000000001

***1

2)设置有效位数setprecision(n),n即为设置位数,例如:

C++控制小数位数输出

输出:

221.116 //默认六位

221.1161101 //通过设置十位

3)设置小数点后位数,先通过setiosflags(ios::fixed)设置固定小数点的位数,再通过setprecision(n),设置小数点后固定保留n位数

例如:

C++控制小数位数输出

输出:

221.116 //默认六位

1.100000 //固定6位,空位自动补零

221.116110 //固定六位,后位四舍五入

221.11611012

4)设置为指数形式输出,setiosflags(ios::scientific),同上面设置小数后位数一样,与setprecision连用设置,不常用,不作例证

5)按进制输出,dec为十进制,hex为16进制,而也可以通过setbase(n),直接设置n进制,例如:

C++控制小数位数输出

输出:

11111

11111

2b67

25547

2b67

2、用流对象的成员函数控制输出格式

用途类似上述,用法稍加改变,类似上文讲解二者区别时的用法;

C++控制小数位数输出

流成员函数setf和控制符setiosflags括号中的参数表示格式状态,它是通过格式标志来指定的。格式标志在类ios中被定义为枚举值。因此在引用这些格式标志时要在前面加上类名ios和域运算符“::”。格式标志见表13.5。

C++控制小数位数输出
原文链接: https://www.cnblogs.com/lyf-sunicey/p/8707044.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/272395

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 下午10:41
下一篇 2023年2月14日 下午10:41

相关推荐