Rumah >pembangunan bahagian belakang >Golang >Mengapa pergi memberikan saya keputusan ini?

Mengapa pergi memberikan saya keputusan ini?

王林
王林ke hadapan
2024-02-10 12:48:091048semak imbas

为什么 go 给我这个结果?

Editor PHP Xigua berada di sini untuk menjawab soalan biasa: "Mengapa go memberikan saya hasil ini bahasa Go ialah bahasa pengaturcaraan dengan ciri kecekapan dan kesederhanaan, dan digunakan secara meluas dalam perkhidmatan rangkaian dan pengkomputeran awan?" dan bidang lain. Apabila membangunkan dalam bahasa Go, kadangkala anda menghadapi beberapa hasil yang tidak dijangka. Ini mungkin disebabkan oleh masalah logik kod, ralat pemprosesan data, atau beberapa keadaan khas. Memahami ciri dan masalah biasa bahasa Go boleh membantu pembangun menyelesaikan dan menyahpepijat program dengan lebih baik serta meningkatkan kecekapan pembangunan. Dalam artikel berikut, kami akan menjawab beberapa soalan biasa dan berkongsi beberapa penyelesaian serta petua.

Kandungan soalan

Saya sedang membuat program untuk mengira peratusan lelaki dan perempuan dalam sesebuah kelas. Tetapi ia memberi saya hasil yang salah.

Kodnya ialah:

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")
}

Output yang diperoleh apabila memasukkan dua kuantiti 50 ialah:

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

Saya ingin tahu apa yang menyebabkan masalah ini dan bagaimana untuk memperbaikinya.

Penyelesaian

Daripada memberikan hasil yang salah, ia memberikan hasil betul dalam format yang salah. Nilai +5.000000e+001 ialah 5x102cdea26b4c3988e37d674b56660962a712eb235f530502820017cce1685312d59, yang sama dengan +5.000000e+0015x102cdea26b4c3988e37d674b56660962a712eb235f530502820017cce1685312d59,等于 50.

Jika anda mahu mereka berada dalam format yang berbeza daripada lalai, anda perlu menentukan, sebagai contoh:

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

Atas ialah kandungan terperinci Mengapa pergi memberikan saya keputusan ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam