iOS 大整数 NSNumberFormatter 不工作
iOS big integer NSNumberFormatter not working
我在 iOS 项目中使用大整数。我没有任何转换问题,因为我将所有数字都保存在字符串中。但是当我在字符串中应用 NSNumberFormatter 时,我遇到了问题。假设我有 40 位以上的字符串。
我的代码是这样的:
// lastString_Capital is my string of all digit. let it 55252585858585858552525251232581285224 (38+)
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSString *text = [numberFormatter stringFromNumber:[NSNumber numberWithUnsignedLongLong:[lastString_Capital longLongValue]]];
我知道范围 (numberWithUnsignedLongLong) 超出了我当前号码的限制。我需要一个解决方案来形成这个长数字。
提前致谢。
使用NSDecimalNumber
。您的值对于 long long
值来说太大了。
NSDecimalNumber *bigNum = [NSDecimalNumber decimalNumberWithString:lastString_Capital];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSString *text = [numberFormatter stringFromNumber:bigNum];
我在 iOS 项目中使用大整数。我没有任何转换问题,因为我将所有数字都保存在字符串中。但是当我在字符串中应用 NSNumberFormatter 时,我遇到了问题。假设我有 40 位以上的字符串。 我的代码是这样的:
// lastString_Capital is my string of all digit. let it 55252585858585858552525251232581285224 (38+)
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSString *text = [numberFormatter stringFromNumber:[NSNumber numberWithUnsignedLongLong:[lastString_Capital longLongValue]]];
我知道范围 (numberWithUnsignedLongLong) 超出了我当前号码的限制。我需要一个解决方案来形成这个长数字。
提前致谢。
使用NSDecimalNumber
。您的值对于 long long
值来说太大了。
NSDecimalNumber *bigNum = [NSDecimalNumber decimalNumberWithString:lastString_Capital];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSString *text = [numberFormatter stringFromNumber:bigNum];