ホームページ > バックエンド開発 > C++ > `std::cout.precision()` がデフォルトで末尾のゼロを出力しないのはなぜですか?

`std::cout.precision()` がデフォルトで末尾のゼロを出力しないのはなぜですか?

Patricia Arquette
リリース: 2024-11-09 04:30:01
オリジナル
959 人が閲覧しました

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.5000 ではなく 0.5 が出力されます。これは、元の整数データ型が原因ではなく、デフォルトで末尾のゼロ抑制がないことが原因です。

末尾のゼロを正しく表示するには、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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート