您的位置:首页 > 编程语言 > C语言/C++

[C++] 浮点数格式化输出

2010-08-17 16:34 441 查看
C++格式化输出浮点数



#include <iostream>
using std::cout;
using std::endl;
using std::fixed;
using std::scientific;

int main()
{
   double x = 0.001234567;
   double y = 1.946e9;

   cout << "Displayed in default format:" << endl << x << '/t' << y << endl;

   cout << "/nDisplayed in scientific format:" << endl << scientific << x << '/t' << y << endl;

   cout << "/nDisplayed in fixed format:" << endl << fixed << x << '/t' << y << endl;
   return 0;
}




Displayed in default format:
0.00123457 1.946e+009

Displayed in scientific format:
1.234567e-003 1.946000e+009

Displayed in fixed format:
0.001235 1946000000.000000



#include <iostream.h>

main(void)
{
  float a=100100.0, b=0.08;
  cout.setf(ios::right|ios::scientific|ios::showpoint);
  cout.width(20);   
  cout <<(-a*b);
  
  return 0;
}




-8.008000e+003



#include <iostream>
#include <iomanip>
#include <limits>
using std::cout;
using std::endl;
using std::setprecision;
using std::numeric_limits;

int main() {
  const double pi = 3.14;
  cout << endl;

  for(double radius = .2 ; radius <= 3.0 ; radius += .2)
    cout << "radius = "
    << setprecision(numeric_limits<double>::digits10 + 1)
    << std::scientific << radius<< "  area = "
         << std::setw(10) << setprecision(6)<< std::fixed << pi * radius * radi
us << endl;
  return 0;
}




radius = 2.0000000000000001e-001 area = 0.125600
radius = 4.0000000000000002e-001 area = 0.502400
radius = 6.0000000000000009e-001 area = 1.130400
radius = 8.0000000000000004e-001 area = 2.009600
radius = 1.0000000000000000e+000 area = 3.140000
radius = 1.2000000000000000e+000 area = 4.521600
radius = 1.3999999999999999e+000 area = 6.154400
radius = 1.5999999999999999e+000 area = 8.038400
radius = 1.7999999999999998e+000 area = 10.173600
radius = 1.9999999999999998e+000 area = 12.560000
radius = 2.1999999999999997e+000 area = 15.197600
radius = 2.3999999999999999e+000 area = 18.086400
radius = 2.6000000000000001e+000 area = 21.226400
radius = 2.8000000000000003e+000 area = 24.617600



#include <iostream>
#include <iomanip>
#include <string>

using namespace std;

int main( ) {

   ios_base::fmtflags flags = cout.flags( );

   double pi = 3.14285714;

   cout << "pi = " << setprecision(5) << pi << '/n';

   cout.flags(flags);
}




pi = 3.1429



#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
   double root2 = sqrt( 2.0 );
   int places;

   cout << setiosflags( ios::fixed)
        << "Square root of 2 with precisions 0-9./n"
        << "Precision set by the "
        << "precision member function:" << endl;

   for ( places = 0; places <= 9; places++ ) {
      cout.precision( places );
      cout << root2 << '/n';
   }

   cout << "/nPrecision set by the "
        << "setprecision manipulator:/n";

   for ( places = 0; places <= 9; places++ )
      cout << setprecision( places ) << root2 << '/n';

   return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: