2013-04-03 3 views
1

У меня есть приложение ios, которое показывает широту вашего текущего местоположения. Я хочу ограничить количество цифр в широте до 8 десятичных точек. Я использовал NSNumberFormatter но код does'nt работы и я не знаю, почему здесь кодTrim NSNumber до 8 знаков после запятой

NSNumber* lat = [[NSNumber alloc] initWithDouble:self.currentLocation.coordinate.latitude]; 
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[formatter setMaximumFractionDigits:8]; 
[formatter setRoundingMode: NSNumberFormatterRoundUp]; 
NSString *latit = [lat stringValue]; 
NSNumber *lati= [formatter numberFromString:(latit)]; 
NSLog(@"lat %@", lat); 
NSLog(@"lati %@", lati); 

Я пробовал много вещей, как вы можете видеть преобразование в строку и т.д. моя консоль показывает как Lat латами быть тоже самое.

+2

Если это геолокации информация, я уверен, что вы не хотите, чтобы усечь знаков после запятой. Или вы хотели бы оказаться на соседнем кладбище вместо дома своей бабушки? – 2013-04-03 07:41:23

+0

hahaha, все, что я использую 'formated' lat, должен отображаться на экране, но для использования с картой я использую реальную широту. – nupac

+0

Извините за придирчивость, мне просто интересно: вам не кажется, что это вводит в заблуждение? – 2013-04-03 07:47:48

ответ

10

Попробуйте это,

NSNumber* lat = [[NSNumber alloc] initWithDouble:self.currentLocation.coordinate.latitude]; 
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 

[formatter setMaximumFractionDigits:8]; 

[formatter setMinimumFractionDigits:0]; 
NSString *result = [formatter stringFromNumber:lat]; 
NSLog(@"lat %@", result); 
+1

это работает, но я не понимаю, почему мой не – nupac

+0

@ChalamphongPandey Потому что если это математическая проблема, вы должны использовать только цифры. Строковое представление числа никогда не следует доверять, не говоря уже о том, чтобы полагаться. – 2013-04-03 07:55:56

+0

@ Hasintha Я понимаю, спасибо! – nupac

Смежные вопросы