Heim > Backend-Entwicklung > Golang > Die Golang-Division behält Dezimalzahlen bei

Die Golang-Division behält Dezimalzahlen bei

WBOY
Freigeben: 2023-05-11 11:38:36
Original
3649 Leute haben es durchsucht

In Golang müssen Sie darauf achten, wie Dezimalstellen bei Divisionsoperationen beibehalten werden. Standardmäßig rundet Golang Dezimalzahlen automatisch und das Ergebnis kommt dem erwarteten Ergebnis unendlich nahe und nicht gleich. In einigen Szenarien, die präzise Berechnungen erfordern, wie z. B. in Finanzsystemen, muss die Genauigkeit nach dem Komma sichergestellt werden, daher ist es notwendig, Dezimalstellen beizubehalten.

Golang bietet mehrere Methoden zum Implementieren von Dezimalaufbewahrungsoperationen. In diesem Artikel werden wir diese Methoden und ihre Vor- und Nachteile untersuchen.

Methode 1: Verwenden Sie die Printf-Funktion des FMT-Pakets

Das FMT-Paket ist eine formatierte Ausgabemethode, die in Golang bereitgestellt wird. Die Printf-Funktion kann eine Formatzeichenfolge verwenden, um das Format der Ausgabe zu definieren, einschließlich der Beibehaltung der Anzahl der Dezimalstellen. Hier ist ein Beispiel:

package main

import (

"fmt"
Nach dem Login kopieren

)

func main() {

a := 3
b := 2
c := float64(a) / float64(b)

fmt.Printf("%.2f", c)
Nach dem Login kopieren

}

Dieser Code gibt den Wert von c auf zwei Dezimalstellen aus. Dies ist eine schnelle und einfache Methode, das Ergebnis wird jedoch nicht in einer Variablen gespeichert.

Methode 2: Verwenden Sie die ParseFloat-Funktion des Strconv-Pakets

Das Strconv-Paket ist ein in Golang bereitgestelltes String-Verarbeitungspaket. Die ParseFloat-Funktion kann eine Zeichenfolge in eine Gleitkommazahl umwandeln und die Anzahl der Dezimalstellen angeben. Hier ist ein Beispiel:

package main

import (

"fmt"
"strconv"
Nach dem Login kopieren

)

func main() {

a := 3
b := 2
c := float64(a) / float64(b)

f, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", c), 64)

fmt.Println(f)
Nach dem Login kopieren

}

In diesem Code haben wir die Funktion fmt.Sprintf verwendet, um den Wert von c so zu formatieren, dass er beibehalten werden soll Zerlegen Sie die Zeichenfolge auf zwei Dezimalstellen und konvertieren Sie sie dann mithilfe der Funktion strconv.ParseFloat in eine Gleitkommazahl. Diese Methode speichert das Ergebnis in einer Variablen, erfordert jedoch einen zusätzlichen Verarbeitungsschritt zum Formatieren der Gleitkommazahl.

Methode 3: Verwenden Sie die Round-Funktion des Mathematikpakets

Die Round-Funktion ist eine in Golang bereitgestellte Rundungsfunktion, mit der Gleitkommazahlen auf eine bestimmte Anzahl von Dezimalstellen gerundet werden können. Hier ist ein Beispiel:

package main

import (

"fmt"
"math"
Nach dem Login kopieren

)

func main() {

a := 3
b := 2
c := float64(a) / float64(b)

f := math.Round(c*100) / 100

fmt.Println(f)
Nach dem Login kopieren

}

In diesem Code verwenden wir die Funktion math.Round, um den Wert von c auf die Dezimalzahl zu runden Komma zwei Ziffern und dividiere dann durch 100, um das Endergebnis zu erhalten. Diese Methode speichert das Ergebnis in einer Variablen und erfordert keine zusätzliche Formatierung.

Zusammenfassung

Die oben genannten drei Möglichkeiten, Dezimalstellen in Golang beizubehalten. Sie haben jeweils ihre eigenen Vor- und Nachteile und müssen bei ihrer Verwendung entsprechend den tatsächlichen Bedürfnissen ausgewählt werden. In Szenarien mit Finanzberechnungen, die Präzision erfordern, wird die Verwendung von Methode 2 und Methode 3 empfohlen, um die Genauigkeit der Ergebnisse sicherzustellen.

Das obige ist der detaillierte Inhalt vonDie Golang-Division behält Dezimalzahlen bei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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