Bagaimana untuk Memformat Nombor Titik Terapung dalam Templat HTML Go?

DDD
Lepaskan: 2024-11-09 00:11:01
asal
905 orang telah melayarinya

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

Memformat Terapung dalam Templat HTML Go

Dalam templat HTML Go, anda mungkin perlu memformat nilai titik terapung untuk paparan. Seperti yang anda nyatakan, menukar float64 kepada rentetan dengan strconv.FormatFloat dalam fail .go anda adalah mudah. Walau bagaimanapun, pendekatan ini tidak sesuai untuk templat.

Sebaliknya, anda mempunyai beberapa pilihan untuk memformat terapung dalam templat HTML anda:

  • Pilihan 1: Sebelum mengisi templat, formatkan nombor menggunakan fmt.Sprintf dalam fail .go anda.
  • Pilihan 2: Cipta jenis data tersuai dan laksanakan kaedah String() untuk memformat apungan mengikut anda keperluan.
  • Pilihan 3: Panggil terus fmt.Sprintf dalam templat, menyatakan rentetan format tersuai.
  • Pilihan 4: Daftar tersuai berfungsi dalam templat untuk memformat apungan menggunakan rentetan format pilihan anda.

Berikut ialah coretan kod contoh yang menunjukkan pilihan ini:

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}}`
Salin selepas log masuk

Apabila anda menjalankan kod ini (cth., di Go Playground), anda akan melihat output berikut:

Number:         n0 = 3.1415
Formatted:      n1 = 3.14
Custom type:    n2 = 3.14
Calling printf: n3 = 3.14
MyFormat:       n4 = 3.14
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Memformat Nombor Titik Terapung dalam Templat HTML Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan