如何确定double是否为整数?

时间:2017-03-06 05:06:18

标签: swift integer double

无论如何在Swift 3中确定double值是否有小数位?在我的程序中,如果它是一个整数值,我只想对这个double执行计算。如何检查小数点后是否有非零数字?

例如:

let double dx = 1.0 // This would return true
let double dy = 1.5 // This would return false

感谢任何和所有帮助!谢谢,

马修

4 个答案:

答案 0 :(得分:2)

extension Double {
    var isInt: Bool {
        let intValue = Int(self)
        return  Double(intValue) == self
    }
}

**当值超出Int范围时不起作用。

答案 1 :(得分:1)

http://pastebin.com/udpypCbd价值几乎永远不会真正完整,他们只会足够接近"根据一些Double。您可以根据需要进行设置,并按照以下方式使用它:

wholenessThreshold

答案 2 :(得分:1)

如果double的floor值等于那个double,那么它被认为是Int,否则它是Double。

let dx: Double = 1.0
let dy: Double = 1.5
let isInteger = floor(dx) == dx // return true
let isInteger = floor(dy) == dy // return false

答案 3 :(得分:0)

最初回答here

extension Double {
    var isInteger: Bool {
        return truncatingRemainder(dividingBy: 1) == 0
    }
}

我们可以将数字除以1得到相同的数字,然后检查其余数。没有余数的数字是整数(整数)。