使用NSNumberFormatter與NSDecimalNumberHandler的格式非常大的,準確的數字的快速測試我做:在iPhone SDK
(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
,但這似乎並不奏效。
任何人有什麼想法?謝謝一堆!