Considerare questi due casi:Perché questi due float64 hanno valori diversi?
fmt.Println(912 * 0.01)
fmt.Println(float64(912) * 0.01)
la seconda stampe 9.120000000000001, che in realtà è bene, I understand why that is happening.
Tuttavia, perché la prima riga stampa 9.12, senza il ... 01 alla fine? Go moltiplicare le due costanti non tipizzate e semplicemente sostituirle con un letterale 9.12 durante la compilazione?
possibile duplicato di [La matematica in virgola mobile è rotta?] (Http://stackoverflow.com/questions/588004/is-floating-point-math-broken) – asawyer
@asawyer Non proprio. OP si sta chiedendo perché questi due producono risultati diversi, non perché uno dei risultati non è esattamente 9.12. – fuz