簡介:保留有效位
法一:大多數部落格上的方法
如果想要保留n位小數
根據c++官網上的解釋,該函式沒有指定的返回型別,並且該函式用於設定輸出操作上的小數精確位。
然後返回值中解釋:未指定返回值,這個函式僅用於資料流修改操作上。
法一弊端,當我們需要將精確後的小數儲存(將a精確後儲存賦值給b)起來的話,使用setprecision函式就不行了。
法二:使用stringstream類
在這裡我們使用第一種方式,可以看到第一種用法解釋是設定流的格式標誌(format flag)為引數 fmtfl 的形式
這裡就可以看到fixed的意思是將小數設定為定點表示法
然後後面的ss.precision(3)就是保留3位
放在一起的意思就是小數點後保留3位有效位。
至於ss.str(),可以看到官網解釋如下,得到字串流中儲存的內容,注意返回位std::string型別:
法三:手動計算,結束floor函式
這個演算法的思想就是先將該數乘以1000,就得到了小數點後三位,然後+0.5是什麼意思呢?
大家想一想哈,a*1000=1123.456789對不對,我們一般保留有效位都是需要四捨五入的,
在a*1000之後+0.5不就自動實現了四捨五入了嗎?然後在使用地板函式進行取整,再除1000不就完美實現了嗎?
總結:第一種方法適用於一次性處理大批資料,比如說如果你想要將很多資料一次寫入txt中。
第二種方法比較適合即算即用,快速簡便。
C 保留有效位數setprecision
目錄 一 保留有效位數 二 保留小數點後n位 三 除法計算結果保留n位小數。四 在計算過程中保留有效位數。setprecision n 功能 控制浮點數顯示的有效數字個數 特點 四捨五入進行保留 如果有效位數不夠,不會自動補0 3.15,setprecision 4 3.15 如果小數點前的位數多餘...
C 保留有效位與保留小數字
保留有效位 這是大多數部落格上的方法 如果想要保留n位小數 根據c 官網上的解釋,該函式沒有指定的返回型別,並且該函式用於設定輸出操作上的小數精確位。然後返回值中解釋 未指定返回值,這個函式僅用於資料流修改操作上。說了這麼多,我想要表達的意思就是當我們需要將精確後的小數儲存 將a精確後儲存賦值給b ...
C 如何保留小數和有效位數
cout 然後再輸出實數型別變數即可以保留2位小數輸出了,當然你要保留三位小數,setprecision 3 就行。setprecision是指設定輸出精度,當沒有 cout 時,輸出格式是資料的有效位數,例如 float a 123.666 cout 將輸出123.67 注意這裡,它會四捨五入 如...