C++中的四舍五入方法

原文地址:C++中的四舍五入方法 作者:魔岩

方法一:使用setprecision(n)可控制输出流显示浮点数的数字个数,C++默认的流输出数值有效位是6。

          如果setprecision(n)与setiosflags(ios::fixed)合用,可控制小数点右边的个数。setiosflags(ios::fixed)是用定点方式表示实数。 
       如果与setiosnags(ios::scientific)合用,可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。
方法二:利用算法进行四舍五入,在例子中介绍。

#include <iostream>

#include <iomanip> //要用到格式控制符

#include<cmath>
using namespace std;

 

int main()
{
      double amount = 22.0/7;
      cout<<amount <<endl;

      //法一
      cout<<setprecision(0) <<amount <<endl;
      cout<<setprecision(1) <<amount <<endl;
      cout<<setprecision(2) <<amount <<endl;
      cout<<setprecision(3) <<amount <<endl;
      cout<<setprecision(4) <<amount <<endl;
   cout <<setiosflags(ios::fixed)<<setprecision(8) <<amount <<endl;
      //法二
      //取整时四舍五入
   double aount=22.0/7,a,b,c;
      int x;
      x=int(aount*10);
      if(x<5)
            a=int(aount);
      else
            a=int(aount)+1;
      cout<<"四舍五入后为:"<<a<<endl;

      //取一位小数时四舍五入

      x=int(aount*100);
      if(x<5)
            b=int((aount*10))/10.0;
      else
            b=int(aount*10+1)/10.0;
      cout<<"四舍五入后为:"<<b<<endl;
      //取n位小数

       double n;

     cout<<"请输入小数位数n:";

        cin>>n;//n<=5

       x=int(aount*pow(10,n));
      if(x<5)
            c=int(amount*pow(10,n-1))/pow(10,n-1);
      else
            c=int(amount*pow(10,n-1)+1)/pow(10,n-1);
   cout<<"四舍五入后为:"<<c<<endl;
   return 0;
}

你可能感兴趣的:(C++中的四舍五入方法)