C++中利用cout和fstream采用非科學(xué)計(jì)數(shù)法輸出
C++ cout和fstream采用非科學(xué)計(jì)數(shù)法輸出
1.cout非科學(xué)計(jì)數(shù)法輸出
cout.setf(ios::fixed); cout.precision(3); // 精度為輸出小數(shù)點(diǎn)后3位
2.fstream文件流非科學(xué)計(jì)數(shù)法輸出
double test=3.1415926; ofstream file(fileName); file.setf(ios::fixed); file.precision(5);//精度為輸出小數(shù)點(diǎn)后5位 file<<test; file.close();
3.fstream中幾個(gè)函數(shù)
?file.precision(8); ? ? ? ? ?file.flags(ios::left|ios::fixed); ?file.fill('0' ); ?file.width(14);
前三個(gè)函數(shù)是一次設(shè)定始終有效,而第四個(gè)2只對(duì)下一次輸入有效。依次解釋這四個(gè)函數(shù)的意義:
file.precision(3);
設(shè)定精度,小數(shù)點(diǎn)后有效數(shù)的位數(shù),若輸出0.32456,結(jié)果為0.324,;若輸出0.3,結(jié)果為0.3。也就是對(duì)缺少的位數(shù)該函數(shù)不會(huì)去補(bǔ)充;file.fill(‘0’ );
該函數(shù)的作用就是把空出來(lái)的位數(shù)用某一字符來(lái)補(bǔ)充。但注意僅設(shè)置precision的情況下是不會(huì)補(bǔ)充的。因?yàn)閜recision只負(fù)責(zé)精度,而不會(huì)限定具體位數(shù)。file.width(14);
則是限定輸出的位數(shù)。但在系統(tǒng)優(yōu)先滿足精度,輸出位數(shù)可能無(wú)法保證。例如321.45678,若設(shè)定8位寬度,5位精度,最終結(jié)果是321.45678。即優(yōu)先滿足精度要求,其次滿足寬度要求。- 同樣上例中若精度為2位,結(jié)果為321.45.剩下的可以用fill來(lái)補(bǔ)充
但設(shè)定以上三種條件也無(wú)法得出滿意的結(jié)果。
因?yàn)橄到y(tǒng)默認(rèn)數(shù)字右對(duì)齊,也就是填充字符會(huì)填充在數(shù)字的左邊!
此時(shí)必須進(jìn)步設(shè)定file.flags(ios::left|ios::fixed);其中ios::left是令字符左對(duì)齊,而ios::fixed,該參數(shù)指定的動(dòng)作是以帶小數(shù)點(diǎn)的形式表示浮點(diǎn)數(shù),并且在允許的精度范圍內(nèi)盡可能的把數(shù)字移向小數(shù)點(diǎn)右側(cè);
C++ 輸出不使用科學(xué)計(jì)數(shù)法
#include <iostream> #include <iomanip> using namespace std; int main() { //強(qiáng)制使用小數(shù),防止使用科學(xué)計(jì)數(shù)法 cout << fixed; //控制顯示的精度,控制小數(shù)點(diǎn)后面的位數(shù)。而整數(shù)太大時(shí)也會(huì)使用科學(xué)計(jì)數(shù)法,要輸出完整的整數(shù)時(shí)就可以將下面改成setprecision(0) cout << setprecision(7); double DoubleNum = 100.0 / 3.0; cout << DoubleNum * 10000 << endl; cin.get(); return 0; }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Qt編寫地圖實(shí)現(xiàn)實(shí)時(shí)動(dòng)態(tài)軌跡效果
實(shí)時(shí)動(dòng)態(tài)軌跡主要是需要在地圖上動(dòng)態(tài)顯示GPS的運(yùn)動(dòng)軌跡,也是編寫地圖時(shí)一個(gè)重要的功能。本文將利用Qt實(shí)現(xiàn)這一功能,需要的可以參考一下2022-02-02Clion下載安裝使用的詳細(xì)教程(Win+MinGW)
這篇文章主要介紹了Clion下載安裝使用教程(Win+MinGW),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08C語(yǔ)言模式實(shí)現(xiàn)C++繼承和多態(tài)的實(shí)例代碼
本篇文章主要介紹了C語(yǔ)言模式實(shí)現(xiàn)C++繼承和多態(tài)的實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Qt實(shí)現(xiàn)導(dǎo)出QTableWidget/QTableView數(shù)據(jù)
這篇文章主要介紹了在Qt中實(shí)現(xiàn)將QTableWidget或者QTableView中的數(shù)據(jù)直接導(dǎo)出的示例代碼,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-01-01C語(yǔ)言 if else 語(yǔ)句詳細(xì)講解
本文主要介紹C語(yǔ)言中的if else,這里詳細(xì)介紹了if else 語(yǔ)句并提供了簡(jiǎn)單的示例代碼,希望能幫助編程入門的小伙伴學(xué)習(xí)2016-07-07