• Как правильно конвертировать тип данных?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Когда вы читаете данные из консоли - они приходят вам с типом string.
    Т.е. сначала нужно считать в строку, а потом уже строку преобразовать во float.

    Вот работающий пример
    package main
    
    import (
        "fmt"
        "log"
        "os"
        "strconv"
    )
    
    func main() {
    
        var what string
        var input string
    
        fmt.Print("Выберите действие (+, -)")
        fmt.Fscan(os.Stdin, &what)
        if what != `+` && what != `-` {
            log.Fatalf("действие указанно не корректно\n")
        }
    
        fmt.Print("Введите первое значение: ")
        fmt.Fscan(os.Stdin, &input)
        a, err := strconv.ParseFloat(input, 64)
        if err != nil {
            log.Fatalf("число указано не корректно: %v\n", err)
        }
    
        fmt.Print("Введите второе значение: ")
        fmt.Fscan(os.Stdin, &input)
        b, err := strconv.ParseFloat(input, 64)
        if err != nil {
            log.Fatalf("число указано не корректно: %v\n", err)
        }
    
        var c float64
        if what == "+" {
            c = a + b
        } else if what == "-" {
            c = a - b
        }
    
        fmt.Printf("Результат: %v\n", c)
    }

    Если это ваши первые шаги в программировании - лучше начать с Python, это ощутимо упростит старт.
    Ответ написан
    2 комментария