Почему go дает мне этот результат?

Я делаю программу, которая вычисляет процент мужчин и женщин в классе. Но это дает мне неверный результат.

Код:

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

И вывод, который я получаю при вводе 50 для обеих величин:

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

Я хочу знать, что вызывает эту проблему и как ее решить.

Жан Карло, убедитесь, что в будущем код вводится в вопрос как текст, а не как изображение (будь то в вопросе или вне вопроса). Изображения мешают людям помочь вам, поэтому, скорее всего, они будут закрыты как неподходящие. Я преобразовал ваше изображение в код/вывод для этого вопроса, хотя, по общему признанию, немного упростил его, потому что мой испанский (?) довольно ограничен. Как в «хомбре» из старых западных фильмов, так и в «у» из сети быстрого питания Guzman y Gomez, которая мексиканская, но близкая :-)

paxdiablo 05.02.2023 23:54

Спасибо, Пабло, я буду иметь это в виду в следующий раз.

JeanCarlo Alvarado 06.02.2023 01:27
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
0
2
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это не дает неправильного результата, это дает правильный результат в неправильном формате. Значение +5.000000e+001 равно 5x101, что равно 50.

Если вы хотите, чтобы они были отформатированы иначе, чем по умолчанию, вам нужно указать это, например:

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

Другие вопросы по теме