CGFloat además de error?

Intenté agregar algunos valores CGFloat de forma recursiva en mi programa. Y me di cuenta en un escenario particular que el total generado era incorrecto. Para asegurarme de que no tenía nada de malo en la lógica de mi programa, creé un ejemplo simple de ese escenario (ver más abajo) y esto imprimió el mismo valor incorrecto.

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);

El primer NSLog imprime 689580736.000000 ... mientras que el resultado correcto es 689580720. Sin embargo, el segundo NSLog imprime el resultado correcto. No estoy seguro de si esto es un error o si estoy haciendo algo mal.

Gracias, Murali

Respuestas a la pregunta(1)

Su respuesta a la pregunta