Formatage des flottants dans les modèles HTML Go
Dans les modèles HTML Go, vous devrez peut-être formater les valeurs à virgule flottante pour l'affichage. Comme vous l'avez mentionné, convertir un float64 en chaîne avec strconv.FormatFloat dans votre fichier .go est simple. Cependant, cette approche ne convient pas aux modèles.
Au lieu de cela, vous disposez de plusieurs options pour formater les flottants dans vos modèles HTML :
Voici un exemple d'extrait de code qui illustre ces options :
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}}`
Lorsque vous exécutez ce code (par exemple, sur le Go Playground), vous verrez le résultat suivant :
Number: n0 = 3.1415 Formatted: n1 = 3.14 Custom type: n2 = 3.14 Calling printf: n3 = 3.14 MyFormat: n4 = 3.14
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!