首頁  >  文章  >  後端開發  >  為什麼 `std::cout. precision()` 預設不印尾隨零?

為什麼 `std::cout. precision()` 預設不印尾隨零?

Patricia Arquette
Patricia Arquette原創
2024-11-09 04:30:01935瀏覽

Why Does `std::cout.precision()` Not Print Trailing Zeros By Default?

理解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 << std::fixed;
std::cout << std::setprecision(4);
std::cout << (float)a / (float)b << "\n";

新增此內容後,程式碼現在將按預期輸出 0.5000。 std::fixed 操縱器指定浮點數值應為固定小數位數的格式,確保保留尾隨零。

以上是為什麼 `std::cout. precision()` 預設不印尾隨零?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn