Heim >Backend-Entwicklung >Golang >Wie formatiere ich Float-Werte in Go-HTML-Vorlagen?

Wie formatiere ich Float-Werte in Go-HTML-Vorlagen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-08 01:25:02968Durchsuche

How to Format Float Values in Go HTML Templates?

Float in Go-Vorlagen formatieren

Das Formatieren von float64-Werten in Go-HTML-Vorlagen kann mit mehreren Methoden erfolgen.

1. Formatieren Sie den Float vor

Formatieren Sie den Float mit fmt.Sprintf(), bevor Sie ihn an die Vorlage übergeben:

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. Erstellen Sie eine String()-Funktion

Definieren Sie einen benutzerdefinierten Typ mit einer String()-Methode, die den Wert nach Ihren Wünschen formatiert:

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. Rufen Sie printf() in der Vorlage auf

Rufen Sie printf() in der Vorlage mit einer benutzerdefinierten Formatzeichenfolge auf:

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

4. Registrieren Sie eine benutzerdefinierte Funktion

Registrieren Sie eine benutzerdefinierte Funktion, um den Formatierungsprozess zu vereinfachen:

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
}

In der Vorlage:

{{myFormat .value}}

Das obige ist der detaillierte Inhalt vonWie formatiere ich Float-Werte in Go-HTML-Vorlagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn