go - 如何在 Go 中测试一个 float 是否为整数?

标签 go modulus

我最初尝试过这个,但是没有为 float64 定义 % 运算符。

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

最佳答案

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

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

否则你可以使用math.Trunc函数详解here , 像这样:

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

那个应该在整个 float64 域中工作。

关于go - 如何在 Go 中测试一个 float 是否为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41945572/

相关文章:

c# - 如何解码包含UTF-8字节顺序标记(BOM)的JSON字符串?

python - 使用 % 和//求除数

c++ - 如何在另一种语言的随机函数中复制 C++ rand?

arrays - 为什么结构数组比较有不同的结果

http - 使用 PUT 方法在 Golang http 客户端请求中未设置 Content-Length header

cryptography - 如何计算具有大质数的大数的模数?

php - 以不规则的顺序使用 php 模数捕获迭代

c - % 后面的文本不打印

go - 如何实现fasthttp框架

node.js - 为 GO 执行的 Vue 应用程序应用更改