Heim >Backend-Entwicklung >Golang >Wie kann ich beim Marshaling von JSON in Go die Gleitkomma-Präzision beibehalten?
Bewahrung der Gleitkommagenauigkeit beim JSON-Marshalling
In Go entfernt die Funktion json.Marshal() häufig nachgestellte Nullen aus Gleitkommazahlen während der JSON-Serialisierung. Dies kann problematisch sein, wenn die konsumierende Anwendung die volle Genauigkeit des ursprünglichen Werts erfordert.
Um dieses Problem zu lösen, sollten Sie erwägen, einen benutzerdefinierten Datentyp zu definieren, der den Gleitkommawert kapselt. Hier ist ein Beispiel:
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 }
In dieser Implementierung:
Durch die Verwendung von PreservedFloat können Sie kann die JSON-Darstellung Ihrer Gleitkommawerte steuern und sicherstellen, dass sie auch nach dem Marshalling ihre Präzision behalten.
Das obige ist der detaillierte Inhalt vonWie kann ich beim Marshaling von JSON in Go die Gleitkomma-Präzision beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!