ホームページ  >  記事  >  バックエンド開発  >  Go での浮動小数点数の書式設定において、fmt.Sprintf と strconv.FormatFloat はどのように異なりますか?

Go での浮動小数点数の書式設定において、fmt.Sprintf と strconv.FormatFloat はどのように異なりますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-10 17:03:02263ブラウズ

How do fmt.Sprintf and strconv.FormatFloat differ in formatting floating-point numbers in Go?

Go での浮動小数点数の書式設定

Go では、浮動小数点数を文字列として書式設定するために、fmt.Sprintf と strconv.FormatFloat という 2 つの主な方法を使用できます。それらの使用法と違いを理解すると、特定のニーズに最適なアプローチを選択できるようになります。

fmt.Sprintf

fmt.Sprintf は printf のような構文に従います。プレースホルダーを使用してフォーマット文字列を指定し、置換される値を渡すことができます。浮動小数点数の場合、%f プレースホルダーを使用し、引数として精度を指定できます。

fmt.Sprintf("%.2f", fResult)

strconv.FormatFloat

strconv.FormatFloat にはさらに多くの機能があります。書式設定の明示的な制御。次のパラメータを指定できます。

  • fResult: 書式設定する浮動小数点数。
  • 'f': 書式設定動詞 (固定小数点表記の 'f') .
  • 2: 精度 (小数点以下の桁数)。
  • 32: ビット サイズ (float32 の場合は 32、float64 の場合は 64)。

違いと使用法

  • 柔軟性: strconv.FormatFloat は、四捨五入や小数点以下の桁数などの書式設定オプションをより柔軟に指定できます。
  • 利便性: 小数点以下の桁数が固定されている文字列やその他の書式設定ルールを使用して文字列を書式設定する場合、多くの場合、fmt.Sprintf の方が便利です。
  • パフォーマンス: fmt.Sprintf および strconv .FormatFloat は同じ基礎となる書式設定ルーチンを使用するため、パフォーマンスに大きな違いはありません。

ビット サイズの重要性

strconv.FormatFloat の最後の引数 (bit size) により、元の浮動小数点値に基づいて正確な丸めが保証されます。この例では、float32 値が使用されているため、32 が正しいです。これにより、結果が float32 として表現できる最も近い値に丸められることが保証されます。

以上がGo での浮動小数点数の書式設定において、fmt.Sprintf と strconv.FormatFloat はどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。