1. 程式人生 > >C++中的四捨五入

C++中的四捨五入

在C++的輸出流中使用控制符,可以實現對輸出格式的控制,包括對輸出小數的精度的控制:

double a=123.456789012345; //對a賦初值
cout<<setiosflags(ios∷fixed)<<setprecision(8)<<a; //輸出: 123.45678901 

設定小數的精度後,程式會對資料進行自動的四捨五入。
但是在普通的整形計算表示式中,程式不會自動進行四捨五入,例如:

int main(){
    int a = 0.69;
    cout<<"a = "<<a<<endl;
    return
0; }

輸出結果為:
這裡寫圖片描述

在math.h或cmath標頭檔案中有四捨五入有關的函式:
這裡寫圖片描述
round函式就可以完成四捨五入的工作。

下面自己編寫一個將double四捨五入為整形int的函式:

#include <iostream>
#include <cmath>
using namespace std;

int r(double a){
    int b;
    if(a > 0){
        b = (a*2+1)/2;
    }else{
        b = (a*2-1)/2;  
    }
    return b;
}

int
main(){ double a = -0.69; a = r(a); cout<<"a = "<<a<<endl; cout<<"round(a) = "<<round(a)<<endl; return 0; }

輸出為:
這裡寫圖片描述