Когда вы читаете данные из консоли - они приходят вам с типом 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, это ощутимо упростит старт.