【问题标题】:How to divide a float in go [duplicate]如何在go中划分浮点数[重复]
【发布时间】:2021-11-30 21:41:31
【问题描述】:

首先,我是编程新手,但我遇到了问题。 我试图从一个浮点数中取出 1/4,但它不起作用(它必须是一个浮点数,这只是一个更简单的例子)。

package main

import (
    "fmt"
)

var (
    a float64
)

func main() {

    fmt.Println("digit")
    fmt.Scan(&a)

    s := a * (1 / 4)
    fmt.Println(s)
}

如果输入为 100,则返回 0。

【问题讨论】:

  • 常量表达式(1/4) 的计算结果为零。请参阅问题How to perform division in Go 了解更多信息。
  • 在你的例子的完整性方面做得很好@PunPun - 我希望我们在 SO 上看到更多这样最小的、可验证的例子

标签: go


【解决方案1】:

您正在划分两个整数,而不是浮点数。您稍后将其分配给 float64 的事实并没有改变。您需要在至少一个值中使用小数点来告知 Go 编译器它应该进行浮点除法:

package main

import (
    "fmt"
)

var (
    a float64
)

func main() {

    fmt.Println("digit")
    fmt.Scan(&a)

    s := a * (1.0 / 4)
    fmt.Println(s)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多