CGFloat bug de adição?

Eu estava tentando adicionar alguns valores CGFloat recursivamente no meu programa. E acabei de perceber em um cenário específico que o total gerado estava incorreto. Para garantir que não havia nada errado na lógica do meu programa, criei um exemplo simples desse cenário (veja abaixo) e imprimi o mesmo valor errad

CGFloat arr[3] = {34484000,512085280,143011440};
CGFloat sum = 0.0;
sum = arr[0] + arr[1] + arr[2];

NSLog(@"%f",sum);

int arr1[3] = {34484000,512085280,143011440};
int sum1 = 0.0;
sum1 =  arr1[0] + arr1[1] + arr1[2];

NSLog(@"%d",sum1);

O primeiro NSLog imprime 689580736.000000 ... enquanto o resultado correto 689580720. No entanto, o segundo NSLog imprime o resultado correto. Não tenho certeza se isso é um bug ou se estou fazendo algo errado.

brigado, Murali

questionAnswers(1)

yourAnswerToTheQuestion