Checking if a double value is an integer - Swift

Youssef Moawad picture Youssef Moawad · Feb 11, 2015 · Viewed 28.7k times · Source

I need to check if a double-defined variable is convertible to Int without losing its value. This doesn't work because they are of different types:

if self.value == Int(self.value)

where self.value is a double.

Answer

ColinE picture ColinE · Feb 11, 2015

Try 'flooring' the double value then checking if it is unchanged:

let dbl = 2.0
let isInteger = floor(dbl) == dbl // true

Fails if it is not an integer

let dbl = 2.4
let isInteger = floor(dbl) == dbl // false