我想将float64值格式化为golang html/template在index.html文件中说的2个小数位。在.go文件中,我可以像这样格式化:
float64
html/template
index.html
.go
strconv.FormatFloat(value, 'f', 2, 32)
但是我不知道如何在模板中格式化它。我正在使用gin-gonic/gin后端框架。任何帮助将不胜感激。谢谢。
gin-gonic/gin
您有很多选择:
fmt.Sprintf()
n1
String() string
n2
printf
n3
string
n4
请参阅以下示例:
type MyFloat float64 func (mf MyFloat) String() string { return fmt.Sprintf("%.2f", float64(mf)) } func main() { t := template.Must(template.New("").Funcs(template.FuncMap{ "MyFormat": func(f float64) string { return fmt.Sprintf("%.2f", f) }, }).Parse(templ)) 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 { fmt.Println(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