Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memformat Nilai Terapung dalam Templat HTML Go?

Bagaimana untuk Memformat Nilai Terapung dalam Templat HTML Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-08 01:25:02988semak imbas

How to Format Float Values in Go HTML Templates?

Format Terapung dalam Templat Go

Memformat nilai float64 dalam templat HTML Go boleh dilakukan menggunakan pelbagai kaedah.

1. Pra-Formatkan Terapung

Formatkan terapung menggunakan fmt.Sprintf() sebelum menghantarnya ke templat:

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. Cipta Fungsi String()

Tentukan jenis tersuai dengan kaedah String() yang memformatkan nilai mengikut keinginan anda:

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. Panggil printf() dalam Templat

Panggil printf() dalam templat menggunakan rentetan format tersuai:

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

4. Daftar Fungsi Tersuai

Daftar fungsi tersuai untuk memudahkan proses pemformatan:

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
}

Dalam templat:

{{myFormat .value}}

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

Kenyataan:
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