小数点後のnビットまで正確にする2つの方法

1331 ワード

引用:みんなはプログラムを书く中でどれだけこの问题に出会うことが少なくて、特にいくつかの初心者に対してこの问题が现れて、ACMの试合をする学友はきっとすべてC言语のprintfフォーマットで出力を制御して、しかしC++の学友を使うことに惯れても少しも方法がないのではありませんて、このblogの中でC++の中でどのように使うことを绍介して、少し复雑ですが一定で、しかし、一つの方法でもある.
まず、コード(4つの整数の和と平均値を求める例)を見てみましょう.
//            
#include
#include 
using namespace std;
int main()
{
	int a,b,c,d,e;
	double f;
	cin>>a>>b>>c>>d;
	e=a+b+c+d;//e    ,    
	f=(double)e/4;//f      , double 
	printf("%d %.1f
",e,f); //C , //C++ cout<

C言語のprintfはフォーマットを制御しやすいことがわかります.「%m.nf」:出力浮動小数点数、mは幅、nは小数点右桁
同時にC++のcout出力ストリームに2つの関数setiosflags()とsetprecision()が使用されていることに気づいた.
次の2つの関数について説明します.
setiosflags()関数:setiosflagsは、パラメータで指定された領域内の動作を実行する役割を果たすネーミングスペースiomanipに含まれるC++オペレータです.
iso::fixedはオペレータsetiosflagsのパラメータの1つで、定点で実数を出力することを表す.
iso::rightもsetiosflagsのパラメータであり、このパラメータの指定は指定領域内で右揃え出力である.
setprecision()関数:setprecision(n)は、出力ストリームが浮動小数点数を表示する数をnに制御することができる.C++デフォルトのストリーム出力値有効ビットは6
   cout<
右揃えの小数点以下1桁の浮動小数点数を出力します.つまり、小数点の右側の桁数を制御します.
 
参考資料:
setprecision()とsetiosflags()(c++小数点以下nビットまで正確)
Printf()出力フォーマット制御setprecision()とsetiosflags()(c++小数点以下nビットまで正確)
転載先:https://www.cnblogs.com/CHLL55/p/4346078.html