Go HTML テンプレートでの浮動小数点の書式設定
Go HTML テンプレートでは、表示用に浮動小数点値の書式設定が必要な場合があります。前述したように、.go ファイル内の strconv.FormatFloat を使用して float64 を文字列に変換するのは簡単です。ただし、このアプローチはテンプレートには適していません。
代わりに、HTML テンプレート内でフロートをフォーマットするためのいくつかのオプションがあります。
これを示すコード スニペットの例を次に示します。これらのオプション:
import ( "fmt" "html/template" "os" ) // MyFloat is a custom type for formatting floats. type MyFloat float64 // String implements the String() method for converting MyFloat to a string. func (mf MyFloat) String() string { return fmt.Sprintf("%.2f", float64(mf)) } func main() { t, err := template.New("").Funcs(template.FuncMap{ // Register the MyFormat function to format floats using a custom format string. "MyFormat": func(f float64) string { return fmt.Sprintf("%.2f", f) }, }).Parse(templ) if err != nil { panic(err) } m := map[string]interface{}{ "n0": 3.1415, "n1": fmt.Sprintf("%.2f", 3.1415), "n2": MyFloat(3.1415), "n3": 3.1415, "n4": 3.1415, } if err := t.Execute(os.Stdout, m); err != nil { panic(err) } } const templ = ` Number: n0 = {{.n0}} Formatted: n1 = {{.n1}} Custom type: n2 = {{.n2}} Calling printf: n3 = {{printf "%.2f" .n3}} MyFormat: n4 = {{MyFormat .n4}}`
このコードを (Go Playground などで) 実行すると、次のようになります。次の出力:
Number: n0 = 3.1415 Formatted: n1 = 3.14 Custom type: n2 = 3.14 Calling printf: n3 = 3.14 MyFormat: n4 = 3.14
以上がGo HTML テンプレートで浮動小数点数をフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。