正確使用std::cout. precision() 進行尾隨零顯示
使用std::cout. precision( 指定的精確度)確定格式化浮點數時要包含的小數位數。但是,在某些情況下,尾隨零可能不會如預期顯示。
考慮以下程式碼片段:
#include <iostream> #include <stdlib.h> int main() { int a = 5; int b = 10; std::cout.precision(4); std::cout << (float)a / (float)b << "\n"; return 0; }
此程式碼嘗試將兩個整數相除的結果輸出為浮點數- 精確度為小數點後四位的點數。但是,輸出顯示“0.5”而不是預期的“0.5000”。發生這種情況是因為在執行除法時整數資料類型隱式轉換為浮點,但精確度尚未專門應用於整數到浮點的轉換。
要正確顯示尾隨零,需要附加一個操縱器std::fixed 必須與std::cout:
#include <iostream> #include <stdlib.h> #include <iomanip> int main() { int a = 5; int b = 10; std::cout << std::fixed; std::cout << std::setprecision(4); std::cout << (float)a / (float)b << "\n"; return 0; }
std::fixed 操縱器指示std::cout 一起使用以定點表示法輸出浮點數,其中包括尾隨零。 std::set precision(4) 操縱器指定輸出應具有四位小數的精度。
透過合併 std::fixed 操縱器,程式碼片段的輸出現在可以正確顯示尾隨零,從而產生正如預期的「0.5000」。
以上是為什麼 `std::cout. precision()` 不如預期顯示尾隨零?的詳細內容。更多資訊請關注PHP中文網其他相關文章!