iOS Objective-C Jak uzyskać 2 wartości dziesiętne zaokrąglone po przecinku?

mam

float a = 1412.244019;

i potrzebuję zaokrąglenia do najbliższego drugiego dziesiętnego jak 1412.24000000. Rozumiem, że jeśli chcę przedstawić tylko dwa miejsca po przecinku, używam% .2f, ale NIE jest to przypadek. Potrzebuję nowego ze względów matematycznych jako pływaka.

Próbowałem kilka metod znalezionych na stackoverflow bez szczęścia. Ten bardziej oczywisty, którego użyłem, wspomniałem poniżej, ale nadal nie miałem szczęścia z niego korzystać. Czy widzisz, dlaczego magia się nie dzieje?

PS: Czasem robi pożądany efekt, NIE zawsze, co każe mi myśleć ... hmmm ...

Z góry dziękuję.

Kod:

float a = 1412.244019;
NSLog(@"a is %f", a); //output a is 1412.244019
a = [[NSString stringWithFormat:@"%.2f", a] floatValue];
NSLog(@"a is %f", a); //output a is 1412.239990

EDYTOWAĆ:

PAMIĘTAJ, że kiedy używam float a po powyższej operacji, uważa się, że jest to 1412.240000, chociaż NSLog mówi inaczej ... dziwnie. Ale dostaję to, czego chcę, więc Kudos za zmarnowany czas niczego nie goniąc :)

EDYTOWAĆ Chciałbym wybrać was wszystkich jako poprawne odpowiedzi, ale ponieważ mogę wybrać tylko jedną, wybrałem pierwszą dobrą odpowiedź z dodatkowym wyjaśnieniem (z dwóch ostatnich).

questionAnswers(6)

yourAnswerToTheQuestion