首頁  >  文章  >  後端開發  >  為什麼 `std::cout. precision()` 不顯示浮點數的尾隨零?

為什麼 `std::cout. precision()` 不顯示浮點數的尾隨零?

Susan Sarandon
Susan Sarandon原創
2024-11-08 21:14:01548瀏覽

Why Does  `std::cout.precision()` Not Display Trailing Zeros for Floating-Point Numbers?

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.5000,但相反,它印出0.5。這種差異是由於原始資料類型是整數的性質而產生的。

解決方案:std::fixed 操縱器

要顯示浮點數的尾隨零,您必須將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 操縱器,程式碼現在可以正確列印 0.5000。 std::set precision() 操縱器仍然負責指定所需的小數位數。

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

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