得到了一个NSDecimal
高精度的大。像这样:
NSString *decStr = @"999999999999.999999999999";
NSDecimal dec;
NSScanner *scanner = [[NSScanner alloc] initWithString:decStr];
[scanner scanDecimal:&dec];
NSDecimalNumber *decNum = [[NSDecimalNumber alloc] initWithDecimal:*dec];
我可以很容易地得到我的字符串表示NSDecimal
:
NSString *output = [decNum stringValue];
或者
NSString *output = [decNum descriptionWithLocale:nil];
但它从未正确格式化以在屏幕上输出:
output = 999999999999.999999999999
我希望它具有像 999,999,999,999.999999999999 这样的组分离
所以我尝试了一个NSNumberFormatter
:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setAllowsFloats:YES];
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[formatter setNumberStyle:kCFNumberFormatterDecimalStyle];
NSString *output = [formatter stringFromNumber:resultDecNum];
结果是这样的:
output = 1,000,000,000,000
有没有办法NSDecimal
在不丢失精度的情况下根据用户区域设置正确格式化高精度?