为了账号安全,请及时绑定邮箱和手机立即绑定

带有两位小数的 Float64

带有两位小数的 Float64

Go
MMMHUHU 2023-07-31 10:57:01
我对此很陌生。我正在尝试制作一个接收两个类型数字的计算器float64,但随后我想输入两位小数的结果。我一直在读它是与"%.2f"但它的结果不太好fmt.Scanfpackage 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("%.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}
查看完整描述

1 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

如果您只需要接受 float 64 值作为输入,您可以简单地使用%f, 或%g来设置您的值。默认精度为 6。


如果您需要更高的精度和错误处理能力,将输入作为字符串输入,然后根据需要解析和处理它们可能会更可靠。


运行下面的代码可以看到输入都是 float64。第一个将以精度 2 输出,第二个将以默认精度输出。


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("%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

}


查看完整回答
反对 回复 2023-07-31
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信