Maison >développement back-end >Golang >Comment formater les valeurs flottantes dans les modèles Go HTML ?

Comment formater les valeurs flottantes dans les modèles Go HTML ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-08 01:25:02988parcourir

How to Format Float Values in Go HTML Templates?

Formater Float dans les modèles Go

Le formatage des valeurs float64 dans les modèles HTML Go peut être effectué à l'aide de plusieurs méthodes.

1. Pré-formater le flottant

Formater le flottant à l'aide de fmt.Sprintf() avant de le transmettre au modèle :

func main() {
  t := template.New("")
  data := map[string]interface{}{
    "value": strconv.FormatFloat(3.1415, 'f', 2, 32),
  }
  _ = t.Execute(os.Stdout, data) // Render the template with formatted value
}

2. Créez une fonction String()

Définissez un type personnalisé avec une méthode String() qui formate la valeur à votre guise :

type MyFloat struct {
  value float64
}

func (f MyFloat) String() string {
  return fmt.Sprintf("%.2f", f.value)
}

func main() {
  t := template.New("")
  data := map[string]interface{}{
    "value": MyFloat{3.1415},
  }
  _ = t.Execute(os.Stdout, data) // Render the template with custom type
}

3. Appelez printf() dans le modèle

Appelez printf() dans le modèle en utilisant une chaîne de format personnalisée :

{{printf "%.2f" .value}}

4. Enregistrez une fonction personnalisée

Enregistrez une fonction personnalisée pour simplifier le processus de formatage :

tmpl := template.New("")
tmpl = tmpl.Funcs(template.FuncMap{
  "myFormat": func(f float64) string {
    return fmt.Sprintf("%.2f", f)
  },
})

func main() {
  data := map[string]interface{}{
    "value": 3.1415,
  }
  _ = tmpl.Execute(os.Stdout, data) // Render the template using custom function
}

Dans le modèle :

{{myFormat .value}}

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn