Тестовый пример:
NSLog(@"%f", M_PI);
NSLog(@"%@", [NSString stringWithFormat:@"%f", M_PI]);
NSLog(@"%@", [NSNumber numberWithDouble:M_PI]);
Результаты:
3.141593
3,141593
3,141592653589793
Выводы:
1) Печать через NSLog() или [NSString stringWithFormat] обеспечивает очень низкую точность...
2) Печать с помощью [NSNumber numberWithDouble] обеспечивает лучшую точность...
Я бы ожидал получить результат намного ближе к исходному значению: 3.14159265358979323846264338327950288 (как определено в math.h)
Любые подсказки?