Memelihara Ketepatan Titik Terapung dalam JSON Marshaling
Dalam Go, fungsi json.Marshal() sering mengalih keluar sifar mengekor daripada nombor titik terapung semasa bersiri JSON. Ini boleh menjadi masalah jika aplikasi yang menggunakan memerlukan ketepatan penuh nilai asal.
Untuk mengatasi isu ini, pertimbangkan untuk menentukan jenis data tersuai yang merangkum nilai titik terapung. Berikut ialah contoh:
type PreservedFloat float64 func (f PreservedFloat) MarshalJSON() ([]byte, error) { // Preserve trailing zeros in the JSON representation. if float64(f) == float64(int(f)) { return []byte(strconv.FormatFloat(float64(f), 'f', 1, 32)), nil } return []byte(strconv.FormatFloat(float64(f), 'f', -1, 32)), nil }
Dalam pelaksanaan ini:
Dengan menggunakan PreservedFloat, anda boleh mengawal perwakilan JSON bagi nilai titik terapung anda, memastikan ia mengekalkan ketepatannya walaupun selepas marshaling.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Ketepatan Titik Terapung Apabila Marshaling JSON dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!