作为格式化非常大、精确的数字的快速测试,我正在做:
(数字是合成的 NSDecimalNumber...) number = [[NSDecimalNumber alloc] initWithDecimal:[[NSDecimalNumber numberWithDouble:420000008698643507200000.0F] decimalValue]]; DLog(@"未格式化:%@", [数字字符串值]);
这给了我:“未格式化:420000008698643507200000”
但是当我尝试通过 格式化它时NSNumberFormatter
,它就很不对劲了……四舍五入之类的……
numFormatter = [[NSNumberFormatter alloc] init]; [numFormatter setNumberStyle:kCFNumberFormatterDecimalStyle]; [numFormatter setRoundingMode:kCFNumberFormatterRoundDown]; [numFormatter setMaximum:nil]; DLog(@"格式化:%@", [numFormatter stringFromNumber:number]);
给我:“格式化:420,000,008,698,644,000,000,000”
我希望有一些NSNumberFormatter
我没有看到的秘密魔法属性,但我试过了setUsesSignificantDigits
,setMaximumSignificantDigits
但似乎没有用。
有人有想法么?非常感谢!