一尘不染

如何在Go中测试浮点数是否为整数?

go

我最初尝试过此方法,但是未为float64定义%运算符。

func main(){
    var a float64
    a = 1.23
    if a%1 == 0{
        fmt.Println("yay")
    }else{
        fmt.Println("you fail")
    }
}

阅读 503

收藏
2020-07-02

共1个答案

一尘不染

假设您的数字适合int64,则可以将浮点值与转换后的整数值进行比较,以查看它们是否相同:

if a == float64(int64(a)) {
    fmt.Println("yay")
} else {
    fmt.Println("you fail")
}

否则,您可以使用此处math.Trunc详述的功能,例如:

if a == math.Trunc(a) {
    fmt.Println("yay")
} else {
    fmt.Println("you fail")
}

那应该在整个float64领域内工作。

2020-07-02