NSDecimal
高精度で大きくなりました。このような:
NSString *decStr = @"999999999999.999999999999";
NSDecimal dec;
NSScanner *scanner = [[NSScanner alloc] initWithString:decStr];
[scanner scanDecimal:&dec];
NSDecimalNumber *decNum = [[NSDecimalNumber alloc] initWithDecimal:*dec];
NSDecimal
これで my の文字列表現を簡単に取得できます。
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
精度を失うことなく、ユーザーのロケールに基づいて正しくフォーマットされた大きな高精度を取得する方法はありますか?