Ich muss Operationen ausführen, wie Potenzierung und Division auf große Werte von Int64 in Go, aber ich habe Probleme mit Überlauf. Ich habe versucht, sie in float64 umzuwandeln, aber dann stoße ich auf andere Probleme. Hier ist was ich versucht habe.Wie arbeite ich mit großen Ganzzahlen in Go?
Ich habe eine Integer-Variable, die ich in eine float64 umwandeln musste, um das handliche Mathe-Paket zu verwenden (https://golang.org/pkg/math).
Es wird jedoch nicht richtig umgesetzt, wenn die Integer-Variable zu groß ist. Ich nehme an, es liegt daran, dass die Größe größer ist als float64. ex:
fmt.Printf("%f",float64(111111111111111110)) //Outputs 111111111111111104.000000
Ich versuche math.Mod, math.Pow10 und math.Log10 zu verwenden. Wie könnte ich die folgende Logik machen, aber mit einer großen Zahl, wie oben gezeigt?
int(math.Mod(float64(123)/math.Pow10(1),10))) // Gets the second digit
Mögliche Duplikat von [Warum sind Gleitkommazahlen ungenau?] (http://stackoverflow.com/questions/21895756/why-are-floating-point-numbers-inaccurate) –
Es stellt sich heraus, dass das OP nicht die Absicht hatte, nach Floating zu fragen überhaupt Punkte, also ist es kein Duplikat dieser Frage. – Zoyd