как быстрый тест форматирования очень больших, точных чисел, которые я делаю:
(number is a synthesized NSDecimalNumber...)
number = [[NSDecimalNumber alloc] initWithDecimal:[[NSDecimalNumber numberWithDouble:420000008698643507200000.0F] decimalValue]];
DLog(@"unformatted: %@", [number stringValue]);
, что дает мне: «неотформатированный: 420000008698643507200000»
но когда я пытаюсь отформатировать его с помощью NSNumberFormatter
, это совсем не так ... округление вверх или что-то ...
numFormatter = [[NSNumberFormatter alloc] init];
[numFormatter setNumberStyle:kCFNumberFormatterDecimalStyle];
[numFormatter setRoundingMode:kCFNumberFormatterRoundDown];
[numFormatter setMaximum:nil];
DLog(@"formatted: %@", [numFormatter stringFromNumber:number]);
дает мне: "отформатировано: 420 000 008 698 644 000 000 000"
Я надеюсь, что есть какое-то секретное NSNumberFormatter
магическое свойство, которого я не вижу, но я попробовал setUsesSignificantDigits
и setMaximumSignificantDigits
, но это не сработало.
У кого-нибудь есть идеи? спасибо большое!