Преобразование Int в Float теряет точность для больших чисел в Swift

XCode 6.3.1 Swift 1.2

let value: Int = 220904525
let intmax = Int.max
let float = Float(value) // Here is an error probably
let intFromFloat = Int(float)
let double = Double(value)
println("intmax=\(intmax) value=\(value) float=\(float) intFromFloat=\(intFromFloat) double=\(double)")
// intmax=9223372036854775807 value=220904525 float=2.20905e+08 intFromFloat=220904528 double=220904525.0

Начальное значение - 220904525. Но когда я конвертирую его в число с плавающей точкой, оно становится 220904528. Почему?

Ответы на вопрос(2)

Ваш ответ на вопрос