精確到小數點後n位的兩種方法

2021-09-24 16:40:01 字數 947 閱讀 1874

引言:大家在寫程式中多多少少會遇到這個問題,特別對一些初學者會出現這個問題,做個acm競賽的同學肯定都會用c語言的printf格式控制輸出,但是習慣於用c++的同學也不是一點辦法都沒有啊,這篇blog中會介紹c++中如何使用,雖然稍微複雜一定,但是也不失為一種方法。

首先看一下**(以求四個整數的和與平均值為例):

//求四個整數的和與平均值

#include#includeusing 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\n",e,f); //c語言控制格式輸出,小數點後面保留一位小數

//c++輸出流格式控制輸出

cout《可以看到c語言的printf是很容易控制格式的,"%m.nf":輸出浮點數,m為寬度,n為小數點右邊數字

同時注意到c++的cout輸出流中使用到了兩個函式setiosflags()和setprecision()

下面介紹一下這兩個函式:

setiosflags()函式:setiosflags 是包含在命名空間iomanip 中的c++ 操作符,該操作符的作用是執行由有引數指定區域內的動作;

iso::fixed 是操作符setiosflags 的引數之一,表示以定點的方式輸出實數;

iso::right 也是setiosflags 的引數,該引數的指定作用是在指定區域內右對齊輸出;

setprecision()函式:setprecision(n)可控制輸出流顯示浮點數的數字個數為n。c++預設的流輸出數值有效位是6

cout《合在一起的意思就是:輸出乙個右對齊的小數點後1位的浮點數,即作用是:控制小數點右邊的位數。

精確到小數點後n位的兩種方法

引言 大家在寫程式中多多少少會遇到這個問題,特別對一些初學者會出現這個問題,做個acm競賽的同學肯定都會用c語言的printf格式控制輸出,但是習慣於用c 的同學也不是一點辦法都沒有啊,這篇blog中會介紹c 中如何使用,雖然稍微複雜一定,但是也不失為一種方法。首先看一下 以求四個整數的和與平均值為...

Double float型別精確到小數點後幾位

需求 返回的一系列資料,精確到小數點後2位 方法一 使用math.round double value 0.254668 double math.round value 100 100 方法二 使用decimalformat方法 decimalformat format new decimalfor...

Double float型別精確到小數點後幾位

原創 2016年12月01日 09 34 23 需求 返回的一系列資料,精確到小數點後2位 方法一 使用math.round double value 0.254668 double math.round value 100 100 方法二 使用decimalformat方法 decimalform...