无论如何在Swift 3中确定double值是否有小数位?在我的程序中,如果它是一个整数值,我只想对这个double执行计算。如何检查小数点后是否有非零数字?
例如:
let double dx = 1.0 // This would return true
let double dy = 1.5 // This would return false
感谢任何和所有帮助!谢谢,
马修
答案 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得到相同的数字,然后检查其余数。没有余数的数字是整数(整数)。