Я пытаюсь преобразовать NSString в NSNumber и, кажется, создает здесь десятичную точку.NSNumber numberFromString не поставил десятичные знаки
NSString *str = @"515.51515";
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:str];
NSLog(@"Number here:%@",myNumber);
[f release];
& результат печати 2015-03-01 08: 09: 28,353 MYAPP [57376: 2086924] Количество здесь: 515,5151499999999
Actual отлаживать журнал картина здесь
, но на самом деле это должно быть 515.51515 скорее 515. 5151499999999.
Я пробовал все принадлежности к f.usesSignificantDigits & f.maximumFractionDigits = 10, но не повезло.
, пожалуйста, дайте мне знать Как это исправить?
То, что вы видите, это правильно. Числа с плавающей запятой редко бывают точными. – rmaddy
, если вы хотите увидеть форматированный результат, вам может понадобиться явно использовать форматирование на 'double', например, например. '% .6f' или около того. – holex
Есть ли причина не использовать NSDecimalNumber? https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDecimalNumber_Class/ –