fmt.Printf の %g 形式は、先頭のゼロを扱うときに幅と精度のフィールドをどのように処理しますか?

Mary-Kate Olsen
リリース: 2024-10-26 10:35:30
オリジナル
331 人が閲覧しました

How does fmt.Printf's %g format handle width and precision fields when dealing with leading zeroes?

%g の幅フィールドと精度フィールドを使用した fmt.Printf の動作

fmt.Printf では、浮動小数点の %g 形式値を使用すると、幅と精度の両方を柔軟に指定できます。ただし、これらのフィールドを組み合わせて使用​​する場合は、考慮すべき微妙な点があります。

精度と合計桁数

他の浮動小数点形式 (%f と %e) とは異なり、 %g の場合、精度フィールドは、小数点以下の 合計桁数 (先頭のゼロと指数を除く) を指定します。たとえば、%.4g は、先行ゼロに関係なく、合計 4 桁を保証します。

先行ゼロと最小幅

先行ゼロは精度を考慮して桁としてカウントされます。ただし、最小幅の計算では除外されます。最小幅はフィールド全体の幅を決定し、width フィールド (例: g) を使用して設定されます。

.9g の動作

特定のケースでは、.9g は合計 9 桁 (先頭のゼロを除く) と 10 文字の最小幅を指定します:

  • 0.0606060606060606 の場合、先頭のゼロのない 9 桁は 0.0606060606 になります。これはすでに最小幅の 10 を満たします。
  • 0.3333333333333333 の場合、先行ゼロなしの 9 桁は 0.333333333 となり、最小幅も満たします。
  • 0.05 の場合、先行ゼロなしの 9 桁は 0.05 となり、これには届きません。
  • 同じことが 0.4 にも当てはまります。
  • 0.1818181818181818 の場合、先行ゼロのない 9 桁は 0.181818182 となります (四捨五入あり)。

つまり、入力値の出力が異なるのは、精度 (表示桁数の決定) と最小幅 (表示桁数の確保) の相互作用によるものです。特定のフィールド幅)。

以上がfmt.Printf の %g 形式は、先頭のゼロを扱うときに幅と精度のフィールドをどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!