Wie formatiere ich Gleitkommazahlen in Go-HTML-Vorlagen?

DDD
Freigeben: 2024-11-09 00:11:01
Original
889 Leute haben es durchsucht

How to Format Floating-Point Numbers in Go HTML Templates?

Formatieren von Gleitkommawerten in Go-HTML-Vorlagen

In Go-HTML-Vorlagen müssen Sie möglicherweise Gleitkommawerte für die Anzeige formatieren. Wie Sie bereits erwähnt haben, ist das Konvertieren eines float64 in einen String mit strconv.FormatFloat in Ihrer .go-Datei unkompliziert. Dieser Ansatz eignet sich jedoch nicht für Vorlagen.

Stattdessen haben Sie mehrere Möglichkeiten, Floats in Ihren HTML-Vorlagen zu formatieren:

  • Option 1:Vor dem Auffüllen Formatieren Sie in der Vorlage die Nummer mit fmt.Sprintf in Ihrer .go-Datei.
  • Option 2: Erstellen Sie einen benutzerdefinierten Datentyp und implementieren Sie die String()-Methode, um den Float gemäß Ihren Anforderungen zu formatieren.
  • Option 3: Rufen Sie fmt.Sprintf direkt in der Vorlage auf. Angabe der benutzerdefinierten Formatzeichenfolge.
  • Option 4: Registrieren Sie eine benutzerdefinierte Funktion in der Vorlage, um den Float mit Ihrem bevorzugten Format zu formatieren string.

Hier ist ein Beispielcodeausschnitt, der diese Optionen demonstriert:

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}}`
Nach dem Login kopieren

Wenn Sie diesen Code ausführen (z. B. auf dem Go Playground), sehen Sie die folgende Ausgabe :

Number:         n0 = 3.1415
Formatted:      n1 = 3.14
Custom type:    n2 = 3.14
Calling printf: n3 = 3.14
MyFormat:       n4 = 3.14
Nach dem Login kopieren

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

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage