iOS 大整数 NSNumberFormatter 不工作

标签 ios objective-c number-formatting biginteger

我正在我的 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 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40603066/

相关文章:

ios - AVAudioPlayer初始化和内存管理

objective-c - 如何在没有一长串 if 语句的情况下将 float 映射到枚举

ios - 有没有办法预加载 UICollectionViewCell?

ios - 如何在uiview动画中使用数组

iphone - 有没有办法限制仅将电子邮件发送到预定义的目的地?

iphone - 为什么此NSLog代码将值打印为零?

ios - iOS,键=>来自NSArray的值

java - 如何使 JFormattedTextField 使用 $1.55,但将值存储为整数 155?

java - 这是根据规范进行的 Java 双重解析行为吗?

css - 使用 CSS 格式化数字(小数位、千位分隔符、本地化等)