Heim >Backend-Entwicklung >Golang >Warum gibt die Go-Division 0 statt 0,3 zurück?
Division in Go: Das 0,3-Rätsel verstehen
Beim Durchführen einer Divisionsoperation in Go kann es sein, dass Sie auf ein unerwartetes Ergebnis von 0 statt stoßen die erwarteten 0,3. Dieses eigenartige Verhalten entsteht durch die Verwendung untypisierter Konstanten in der Operation.
In Go werden die Operanden binärer Operationen zunächst als untypisierte Konstanten behandelt. Der resultierende Typ der Operation wird durch die Operanden anhand einer bestimmten Rangfolge bestimmt. Bei ganzzahligen Konstanten wie 3 und 10 ist das Ergebnis eine untypisierte Ganzzahl, also 0.
Um ein Gleitkomma-Ergebnis zu erhalten, muss man sicherstellen, dass mindestens ein Operand eine Gleitkomma-Konstante ist. Durch die Verwendung einer expliziten Typkonvertierung, wie in den folgenden Ausdrücken dargestellt, können Sie die gewünschte Genauigkeit erreichen:
Alternativ können Sie die ganzzahligen Operanden in float64 konvertieren explizit:
Diese Änderungen erzwingen, dass die Operation Gleitkommaarithmetik verwendet. was das beabsichtigte Ergebnis von 0,3 ergibt.
Daher bei der Durchführung Achten Sie beim Ausführen arithmetischer Operationen in Go auf die Art der verwendeten Konstanten. Um dieses spezielle Problem bei der Division zu vermeiden, stellen Sie sicher, dass Ihre Operanden entweder explizite Gleitkommakonstanten sind oder einer expliziten Typkonvertierung in float64 unterzogen werden.
Das obige ist der detaillierte Inhalt vonWarum gibt die Go-Division 0 statt 0,3 zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!