Heim >Backend-Entwicklung >Golang >Wie stellt Golang Geld dar?

Wie stellt Golang Geld dar?

PHPz
PHPzOriginal
2023-05-10 11:35:071328Durchsuche

In Golang können wir zur Darstellung von Geld float64 oder eine Dezimalbibliothek verwenden.

  1. Verwenden Sie float64, um Geld darzustellen

In Golang ist der Gleitkommatyp float64 einer der am häufigsten verwendeten numerischen Typen, wir können ihn zur Darstellung von Geld verwenden. Wenn Sie nur grundlegende Berechnungen und Vergleiche durchführen müssen, ist die Verwendung von float64 eine gute Wahl. Zum Beispiel:

var price float64 = 19.99
var total float64 = price * 2
fmt.Println(total) // 39.98

Im obigen Beispiel haben wir einen variablen Preis vom Typ float64 deklariert und ihn auf 19,99 initialisiert. Dann haben wir den Gesamtpreis aus Preis * 2 berechnet und das Ergebnis dem Gesamtpreis zugeordnet. Schließlich drucken wir den Gesamtwert aus, der 39,98 beträgt.

Es ist jedoch zu beachten, dass Gleitkommazahlen Probleme mit der Genauigkeit haben. Zum Beispiel:

var price float64 = 0.1
var total float64 = price * 0.2
fmt.Println(total) // 0.020000000000000004

Im obigen Beispiel haben wir einen variablen Preis vom Typ float64 deklariert und ihn auf 0,1 initialisiert. Dann haben wir den Gesamtpreis mit Preis * 0,2 berechnet und das Ergebnis dem Gesamtpreis zugeordnet. Schließlich drucken wir den Gesamtwert aus und das Ergebnis ist 0,020000000000000004. Dies wird durch das Präzisionsproblem von Gleitkommazahlen verursacht. Daher wird beim Umgang mit Geld empfohlen, die Dezimalbibliothek mit höherer Genauigkeit zu verwenden.

  1. Verwenden Sie die Dezimalbibliothek zur Darstellung von Geld

Die Dezimalbibliothek von Golang bietet eine höhere Präzision, wodurch durch Gleitkommazahlen verursachte Präzisionsprobleme wirksam vermieden werden können, wodurch Geld besser dargestellt wird. Zum Beispiel:

import "github.com/shopspring/decimal"

func main() {
    price := decimal.NewFromFloat(19.99)
    total := price.Mul(decimal.NewFromInt(2))
    fmt.Println(total) // 39.98
}

Im obigen Beispiel haben wir die Dezimalbibliothek verwendet und ihre Mul()-Methode angegeben, um den Gesamtpreis zu berechnen. Wir verwenden auch die Methoden NewFromFloat() und NewFromInt(), um Variablen vom Typ Dezimal zu erstellen. Der Ergebniswert ist ein Dezimalwert, der der numerischen Genauigkeit von 10 hoch 24 entspricht, sodass garantiert werden kann, dass die Genauigkeit nicht beeinträchtigt wird.

Zusammenfassung

In Golang können wir float64 oder eine Dezimalbibliothek verwenden, um Geld darzustellen. Wenn Sie nur grundlegende Berechnungen und Vergleiche durchführen müssen, ist die Verwendung von float64 eine gute Wahl. Es ist jedoch wichtig zu beachten, dass Gleitkommazahlen Probleme mit der Genauigkeit haben. Wenn eine höhere Genauigkeit erforderlich ist, ist die Verwendung der Dezimalbibliothek die bessere Wahl. Achten Sie beim Umgang mit Geld besonders auf Genauigkeitsprobleme, um Fehler aufgrund von Genauigkeitsproblemen zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie stellt Golang Geld dar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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