Hexadezimale Zeichenfolge in abgeschnittene Dezimalzahl
Die Konvertierung einer langen hexadezimalen Zeichenfolge in die Dezimalschreibweise kann eine Herausforderung sein, insbesondere wenn die resultierende Zahl den Bereich überschreitet von int64. Um dieses Problem zu lösen, stellt Golang das Paket „math/big“ bereit.
Beispielkonvertierung
Betrachten Sie die folgende hexadezimale Zeichenfolge:
"0x00000000000000000000000000000000000000000000d3c21bcecceda1000000"
Mit math/big
Um diese Zeichenfolge mit math/big zu konvertieren, Befolgen Sie diese Schritte:
import "math/big" s := "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000" i := new(big.Int) i.SetString(s, 16) // Convert result to decimal (using %f formatting) fmt.Printf("%f", i)
Dezimalstellen abschneiden
Um die Dezimalstelle auf 18 Dezimalstellen zu kürzen, verwenden Sie die folgende Formatzeichenfolge:
%018.18f
Beispielausgabe
Die Ausgabe des Der obige Code, formatiert mit 18 Dezimalstellen, lautet:
1000000000000000000.000000
Denken Sie daran, dass das math/big-Paket auch die Schnittstellen TextMarshaler und fmt.Scanner für die Konvertierung in und aus Strings unterstützt.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich in Go eine lange Hexadezimalzeichenfolge in eine verkürzte Dezimalzahl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!