Heim > Backend-Entwicklung > Golang > Gibt es in Go einen Standardtyp, der eine „exakte Division' durchführen kann?

Gibt es in Go einen Standardtyp, der eine „exakte Division' durchführen kann?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2024-02-13 22:15:11
nach vorne
448 Leute haben es durchsucht

Go 中是否有一个标准类型可以进行“精确除法”?

Gibt es in Go einen Standardtyp, der eine „exakte Division“ durchführen kann? Dies ist eine häufig gestellte Frage. Beantworten wir sie. In Go gibt es keinen Standardtyp, der eine „exakte Division“ durchführen kann, da die Ganzzahltypen in Go eine feste Genauigkeit haben und keine Dezimalzahlen mit unendlicher Genauigkeit darstellen können. Go bietet jedoch eine Lösung, indem es Gleitkommatypen für Divisionsoperationen verwendet. Zu den Gleitkommazahltypen in Go gehören float32 und float64, die einen größeren Zahlenbereich darstellen können, aber aufgrund der Eigenschaften von Gleitkommazahlen kann es zu einem Genauigkeitsverlust kommen. Wenn eine exakte Division erforderlich ist, wird daher empfohlen, eine große Zahlenbibliothek (z. B. das Paket math/big) zu verwenden, um diese zu verarbeiten. Dies gewährleistet genaue Ergebnisse bei der Durchführung von Divisionsoperationen.

Frageninhalt

Ich möchte in Go eine „exakte Division“ durchführen. Gibt es Standardtypen?

Zum Beispiel möchte ich die Werte „1/3“ und „2/3“ speichern und hinzufügen können.

Ich kann meinen eigenen Typ so definieren:

type mytype struct {
    numerator   int
    denominator int
}
Nach dem Login kopieren

Und definieren Sie die folgende Funktion:

func (a MyType) Plus(b MyType) MyType {
    d := a.Denominator * b.Denominator
    n := (a.Numerator * b.Denominator) + (b.Numerator * a.Denominator)

    return MyType{Numerator: n, Denominator: d}
}
Nach dem Login kopieren

Aber es könnte eine elegantere Möglichkeit geben, dies zu tun, oder einen „Standardtyp“, der dies bereits tut.

Lösung

Ich weiß es nicht big.Rat. Das ist alles was ich brauche! Vielen Dank für Ihre Hilfe

Das obige ist der detaillierte Inhalt vonGibt es in Go einen Standardtyp, der eine „exakte Division' durchführen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage