Betrachten Sie diese zwei Fälle:Warum haben diese beiden float64s unterschiedliche Werte?
fmt.Println(912 * 0.01)
fmt.Println(float64(912) * 0.01)
die zweite druckt 9,120000000000001, die eigentlich in Ordnung ist, I understand why that is happening.
Warum aber druckt die erste Zeile 9.12, ohne die ... 01 am Ende? Verarbeitet Go die zwei untypisierten Konstanten und ersetzt sie beim Kompilieren einfach durch ein 9.12-Literal?
mögliche Duplikate von [Ist Fließkomma-Mathematik gebrochen?] (Http://StackOverflow.com/Questions/588004/is-floating-point-math-broken) – asawyer
@asawyer Nicht wirklich. OP fragt sich, warum diese zwei unterschiedliche Ergebnisse liefern, nicht warum eines der Ergebnisse nicht genau 9.12 ist. – fuz