Heim >Backend-Entwicklung >Golang >Warum liefert mir go dieses Ergebnis?

Warum liefert mir go dieses Ergebnis?

王林
王林nach vorne
2024-02-10 12:48:091074Durchsuche

为什么 go 给我这个结果?

php-Editor Xigua ist hier, um eine häufig gestellte Frage zu beantworten: „Warum liefert mir Go dieses Ergebnis?“ Die Go-Sprache ist eine Programmiersprache mit den Merkmalen Effizienz und Einfachheit und wird häufig in Netzwerkdiensten und Cloud Computing verwendet. und anderen Bereichen. Bei der Entwicklung in der Go-Sprache kommt es manchmal zu unerwarteten Ergebnissen. Dies kann durch Code-Logikprobleme, Datenverarbeitungsfehler oder besondere Umstände verursacht werden. Das Verständnis der Merkmale und häufigen Probleme der Go-Sprache kann Entwicklern helfen, Programme besser zu lösen und zu debuggen und die Entwicklungseffizienz zu verbessern. In den folgenden Artikeln beantworten wir einige häufig gestellte Fragen und geben einige Lösungen und Tipps weiter.

Frageninhalt

Ich erstelle ein Programm, um den Anteil von Männern und Frauen in einer Klasse zu berechnen. Aber es gibt mir ein falsches Ergebnis.

Der Code lautet:

package main
import {
    "fmt"
}

var total, mujeres, hombres float64

func main() {
    fmt.printf("número de mujeres:")
    fmt.scanln(&mujeres)

    fmt.printf("número de hombres:")
    fmt.scanln(&hombres)

    total = mujeres + hombres
    mujeres = (mujeres / total) * 100
    hombres = (hombres / total) * 100

    print("en al salón de clases hay ", mujeres, "% de mujeres y ", 
        hombres, "% de hombres")
}

Die Ausgabe, die man erhält, wenn man zwei Mengen von 50 eingibt, ist:

En al salón de clases hay +5.000000+001% de mujeres y +5.000000+001% de hombres

Ich möchte wissen, was dieses Problem verursacht und wie man es beheben kann.

Problemumgehung

Anstatt falsche Ergebnisse zu liefern, liefert es richtige Ergebnisse im falschen Format. Der -Wert +5.000000e+001 ist 5x102cdea26b4c3988e37d674b56660962a712eb235f530502820017cce1685312d59, was gleich +5.000000e+0015x102cdea26b4c3988e37d674b56660962a712eb235f530502820017cce1685312d59,等于 50 ist.

Wenn Sie möchten, dass sie in einem anderen Format als dem Standardformat vorliegen, müssen Sie beispielsweise Folgendes angeben:

fmt.Printf("En al salón de clases hay %.1f%% du mujeres y %.1f%% du hombres\n",
    mujeres, hombres)

Das obige ist der detaillierte Inhalt vonWarum liefert mir go dieses Ergebnis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen