猿问

带有两位小数的 Float64

我对此很陌生。我正在尝试制作一个接收两个类型数字的计算器float64,但随后我想输入两位小数的结果。我一直在读它是与"%.2f"但它的结果不太好fmt.Scanf


package main


import "fmt"


const menu string = "Calculator v1.0:\n\t1.a+b\n\t2.a-b\n\t3.a*b\n\t4.a/b\nSelect an option:"


func main() {

    var option int

    var firstNumber float64

    var secondNumber float64


    fmt.Println(menu)

    fmt.Scanf("%d", &option)


    fmt.Println("First number:")

    fmt.Scanf("%.2f", &firstNumber)

    fmt.Println("Second number:")

    fmt.Scanf("%.2f", &secondNumber)


    if option == 1 {

        println(sum(firstNumber, secondNumber))

    } else if option == 2 {

        println(subtract(firstNumber, secondNumber))

    } else if option == 3 {

        println(multiply(firstNumber, secondNumber))

    } else if option == 4 {

        println(divide(firstNumber, secondNumber))

    }


}


func sum(a float64, b float64) float64 {

    return a + b

}

func subtract(a float64, b float64) float64 {

    return a - b

}

func multiply(a float64, b float64) float64 {

    return a * b

}

func divide(a float64, b float64) float64 {

    return a / b

}


MMMHUHU
浏览 107回答 1
1回答

牛魔王的故事

如果您只需要接受 float 64 值作为输入,您可以简单地使用%f, 或%g来设置您的值。默认精度为 6。如果您需要更高的精度和错误处理能力,将输入作为字符串输入,然后根据需要解析和处理它们可能会更可靠。运行下面的代码可以看到输入都是 float64。第一个将以精度 2 输出,第二个将以默认精度输出。package mainimport "fmt"const menu string = "Calculator v1.0:\n\t1.a+b\n\t2.a-b\n\t3.a*b\n\t4.a/b\nSelect an option:"func main() {    var option int    var firstNumber float64    var secondNumber float64    fmt.Println(menu)    fmt.Scanf("%d", &option)    fmt.Println("First number:")    fmt.Scanf("%f", &firstNumber)    fmt.Println("Second number:")    fmt.Scanf("%g", &secondNumber)    fmt.Printf("Input Type: %T, FirstNumber: %.2f\n", firstNumber, firstNumber)    fmt.Printf("Input Type 2: %T, SecondNumber: %f\n", secondNumber, secondNumber)    if option == 1 {        println(sum(firstNumber, secondNumber))    } else if option == 2 {        println(subtract(firstNumber, secondNumber))    } else if option == 3 {        println(multiply(firstNumber, secondNumber))    } else if option == 4 {        println(divide(firstNumber, secondNumber))    }}func sum(a float64, b float64) float64 {    return a + b}func subtract(a float64, b float64) float64 {    return a - b}func multiply(a float64, b float64) float64 {    return a * b}func divide(a float64, b float64) float64 {    return a / b}
随时随地看视频慕课网APP

相关分类

Go
我要回答