C++中利用cout和fstream采用非科學計數(shù)法輸出
C++ cout和fstream采用非科學計數(shù)法輸出
1.cout非科學計數(shù)法輸出
cout.setf(ios::fixed); cout.precision(3); // 精度為輸出小數(shù)點后3位
2.fstream文件流非科學計數(shù)法輸出
double test=3.1415926; ofstream file(fileName); file.setf(ios::fixed); file.precision(5);//精度為輸出小數(shù)點后5位 file<<test; file.close();
3.fstream中幾個函數(shù)
?file.precision(8); ? ? ? ? ?file.flags(ios::left|ios::fixed); ?file.fill('0' ); ?file.width(14);
前三個函數(shù)是一次設定始終有效,而第四個2只對下一次輸入有效。依次解釋這四個函數(shù)的意義:
file.precision(3);
設定精度,小數(shù)點后有效數(shù)的位數(shù),若輸出0.32456,結果為0.324,;若輸出0.3,結果為0.3。也就是對缺少的位數(shù)該函數(shù)不會去補充;file.fill(‘0’ );
該函數(shù)的作用就是把空出來的位數(shù)用某一字符來補充。但注意僅設置precision的情況下是不會補充的。因為precision只負責精度,而不會限定具體位數(shù)。file.width(14);
則是限定輸出的位數(shù)。但在系統(tǒng)優(yōu)先滿足精度,輸出位數(shù)可能無法保證。例如321.45678,若設定8位寬度,5位精度,最終結果是321.45678。即優(yōu)先滿足精度要求,其次滿足寬度要求。- 同樣上例中若精度為2位,結果為321.45.剩下的可以用fill來補充
但設定以上三種條件也無法得出滿意的結果。
因為系統(tǒng)默認數(shù)字右對齊,也就是填充字符會填充在數(shù)字的左邊!
此時必須進步設定file.flags(ios::left|ios::fixed);其中ios::left是令字符左對齊,而ios::fixed,該參數(shù)指定的動作是以帶小數(shù)點的形式表示浮點數(shù),并且在允許的精度范圍內盡可能的把數(shù)字移向小數(shù)點右側;
C++ 輸出不使用科學計數(shù)法
#include <iostream> #include <iomanip> using namespace std; int main() { //強制使用小數(shù),防止使用科學計數(shù)法 cout << fixed; //控制顯示的精度,控制小數(shù)點后面的位數(shù)。而整數(shù)太大時也會使用科學計數(shù)法,要輸出完整的整數(shù)時就可以將下面改成setprecision(0) cout << setprecision(7); double DoubleNum = 100.0 / 3.0; cout << DoubleNum * 10000 << endl; cin.get(); return 0; }
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
C語言模式實現(xiàn)C++繼承和多態(tài)的實例代碼
本篇文章主要介紹了C語言模式實現(xiàn)C++繼承和多態(tài)的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07Qt實現(xiàn)導出QTableWidget/QTableView數(shù)據
這篇文章主要介紹了在Qt中實現(xiàn)將QTableWidget或者QTableView中的數(shù)據直接導出的示例代碼,文中的示例代碼講解詳細,感興趣的可以了解一下2022-01-01