mamCel iOS celu C Uzyskanie wartości liczbowej zaokrąglenia o wartości 2 miejsc po przecinku?
float a = 1412.244019;
i potrzebuję być zaokrąglane do najbliższego drugiego miejsca po przecinku jak 1412.24000000. Rozumiem, że jeśli chcę przedstawić tylko dwa miejsca po przecinku, używam% .2f, ale tak NIE jest. Potrzebuję nowego z powodów matematycznych jako float.
Próbowałem kilka metod znaleziono na stackoverflow bez powodzenia. Bardziej oczywiste, którego używałem, wspomnę o tym poniżej, ale wciąż nie miałem szczęścia. Czy widzisz, dlaczego magia się nie dzieje?
PS: To robi pożądany efekt czasami, nie zawsze, który trafia mi do myślenia ... hmmm ...
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
EDIT:
Wygląda na to, kiedy używam pływaka po powyższej operacji, to biorąc pod uwagę, że jest 1412.240000 eventhough NSLog mówi inaczej ... dziwne. ale jestem coraz to, co chcę, więc Kudos dla straconego czasu ściga nic :)
EDIT chciałbym wybrać jak was wszystkich poprawnych odpowiedzi, ale skoro mogę wybrać tylko jedną, i wybrał pierwszą dobrą odpowiedź z dodatkowym wyjaśnieniem (z dwóch ostatnich).
Wypróbowałem ją, Widziałem, że opublikowałeś tę metodę w innym poście. Ale NSLog wciąż daje tę samą odpowiedź (spróbuj sam). Ale zobacz EDIT powyżej. Mimo że NSLog podaje "zły" format, używa go poprawnie. –
Tak jak powiedziałem w edycji, niemożliwe jest uzyskanie pełnej precyzji w punktach float –
Rozumiem. Oblicza to tak, jak chcę. Po prostu myślę, że to dziwne, bo wtedy nigdy nie będziesz w stanie użyć precyzyjnej arytmetyki? –