日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C++中利用cout和fstream采用非科學計數法輸出_C 語言

作者:冷面杰拉德 ? 更新時間: 2022-12-09 編程語言

C++ cout和fstream采用非科學計數法輸出

1.cout非科學計數法輸出

cout.setf(ios::fixed);
cout.precision(3); // 精度為輸出小數點后3位

2.fstream文件流非科學計數法輸出

double test=3.1415926;
ofstream file(fileName);
file.setf(ios::fixed);
file.precision(5);//精度為輸出小數點后5位
file<<test;
file.close();

3.fstream中幾個函數

?file.precision(8); ? ? ? ?
?file.flags(ios::left|ios::fixed);
?file.fill('0' );
?file.width(14);

前三個函數是一次設定始終有效,而第四個2只對下一次輸入有效。依次解釋這四個函數的意義:

  • file.precision(3); 設定精度,小數點后有效數的位數,若輸出0.32456,結果為0.324,;若輸出0.3,結果為0.3。也就是對缺少的位數該函數不會去補充;
  • file.fill(‘0’ );該函數的作用就是把空出來的位數用某一字符來補充。但注意僅設置precision的情況下是不會補充的。因為precision只負責精度,而不會限定具體位數。
  • file.width(14);則是限定輸出的位數。但在系統優先滿足精度,輸出位數可能無法保證。例如321.45678,若設定8位寬度,5位精度,最終結果是321.45678。即優先滿足精度要求,其次滿足寬度要求。
  • 同樣上例中若精度為2位,結果為321.45.剩下的可以用fill來補充

但設定以上三種條件也無法得出滿意的結果。

因為系統默認數字右對齊,也就是填充字符會填充在數字的左邊!

此時必須進步設定file.flags(ios::left|ios::fixed);其中ios::left是令字符左對齊,而ios::fixed,該參數指定的動作是以帶小數點的形式表示浮點數,并且在允許的精度范圍內盡可能的把數字移向小數點右側;

C++ 輸出不使用科學計數法

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    //強制使用小數,防止使用科學計數法
    cout << fixed;
    //控制顯示的精度,控制小數點后面的位數。而整數太大時也會使用科學計數法,要輸出完整的整數時就可以將下面改成setprecision(0)
    cout << setprecision(7);
    double DoubleNum = 100.0 / 3.0;
    cout << DoubleNum * 10000 << endl;
    cin.get();
    return 0;
}

原文鏈接:https://blog.csdn.net/weixin_44153180/article/details/114792470

欄目分類
最近更新