La conversión de Int a Float pierde precisión para grandes números en 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

El valor inicial es 220904525. Pero cuando lo convierto en flotante se convierte en 220904528. ¿Por qué?

Respuestas a la pregunta(2)

Su respuesta a la pregunta