關於C 的cout輸出小數的精度控制

2021-07-06 07:03:38 字數 2021 閱讀 9059

最近在寫乙個模擬的裁判評分程式,涉及到分數的精度和輸出格式問題,特總結如下:

**背景:

#include using namespace std;

float num = 1.25;

1、設定對齊方式(如:右對齊,ios::right):

cout.setf(ios::right); // 設定對齊方式

cout << num << endl;;

效果(不明顯,當數字長度小於輸出寬度的時候才能看出效果,如2所示):

2、將數字輸出寬度設定為8:

cout.setf(ios::right); // 設定對齊方式

cout.width(8); //設定輸出寬度

cout << num << endl;

效果:

3、將寬度多餘的部分用某個字元(如:'0')填充:

cout.setf(ios::right); // 設定對齊方式

cout.width(8); //設定輸出寬度

cout.fill('0'); //將多餘的空格用0填充

cout << num << endl;

效果:

4、設定精度:保留**位有效數字,如果小數點最後面有0,則自動去掉:

float num = 1.25;

cout.setf(ios::right); // 設定對齊方式

cout.width(8); //設定輸出寬度

cout.fill('0'); //將多餘的空格用0填充

cout.precision(2); //設定輸出精度,保留有效數字

cout << num << endl;

效果:

5.保留小數點後有效的位數。如:1.25 保留4位有效數字後的1.250中0的顯示,要依靠cout.setf(ios::showpoint)函式(因為保留有效數字的函式不會保留沒用的0有效位):

cout.setf(ios::right); // 設定對齊方式

cout.width(8); //設定輸出寬度

cout.fill('0'); //將多餘的空格用0填充

cout.setf(ios::showpoint); //將小數精度後面的0顯示出來

cout.precision(4); //設定輸出精度,保留有效數字

cout << num << endl;

效果:

6、保留小數點後**位數

cout.setf(ios::right); // 設定對齊方式

cout.width(8); //設定輸出寬度

cout.fill('0'); //將多餘的空格用0填充

cout.flags(ios::fixed);

cout.precision(4); //設定輸出精度,

cout << num << endl;

效果(保留4為小數):

cout 輸出精度的控制方法

前陣子在牛客上做了一道純粹輸出的題,輸出控制小數點後的數字的個數,由輸入決定。時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 喜愛acm的pby同學遇到了一道數學難題,已知底數n,請你幫他準確的計算出結果a n n的 次方 結果保留小數點後x位。第一行是乙...

C 控制cout輸出的小數字數

方法一 使用setprecision n 與setiosflags ios fixed 合用,可以控制小數點右邊的數字個數,標頭檔案 include setiosflags 是包含在命名空間iomanip 中的c 操作符,該操作符的作用是執行由有引數指定區域內的動作 setprecision 也是包...

用cout控制輸出小數的位數

採用格式控制符setprecision n 控制,或者流物件的成員函式precision n 使用時都要結合fixed使用,否則n指的是整數字數和小數字數的和 使用setprecision n 要加標頭檔案iomanip 1 precision 函式和fixed includeusing names...