C++中的四捨五入
阿新 • • 發佈:2019-02-10
在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;
}
輸出為: