Avatar ·

Wie man einen Integer (int) in eine Gleitkommazahl (float64) in Go umwandelt?

Hallo zusammen! Ich lerne gerade Go nach Python und bin auf ein Problem mit der Typkonvertierung gestoßen. In Python bin ich es gewohnt, dass Gleitkommazahlen und ganze Zahlen problemlos in Ausdrücken gemischt werden können, aber in Go ist alles streng.

Ich habe einen einfachen Rechner für den arithmetischen Mittelwert. Ich bekomme eine Summe aus ganzen Zahlen (int) und die Anzahl der Elemente (auch int). Ich muss den Durchschnitt berechnen, der offensichtlich gebrochen sein kann. Aber der Compiler meckert, wenn ich versuche, int durch int zu teilen und float zu erhalten.

Hier ist mein Code:

package main

import "fmt"

func main() {
    sum := 10   // int
    count := 3  // int
    avg := sum / count // Möchte 3.333... erhalten, bekomme aber 3
    fmt.Println(avg)
}

Ich verstehe, dass in Go die Division von ganzen Zahlen ein ganzzahliges Ergebnis liefert, wobei der Bruchteil abgeschnitten wird. Ich habe versucht, avg := float64(sum / count) zu schreiben, aber das ergibt immer noch 3.0, nicht 3.333...

Wie konvertiere ich int richtig in fl