比无符号长长整数大的数值

3
我正在开发一款iOS Objective C应用程序,用户可以累积大量财富。在应用程序结束时,用户可以积累的金额超过long long所能处理的范围。我应该使用哪种数据类型来替代它?我知道可以使用unsigned long,但这只增加了一点点。我需要用户安全地拥有6位数字,因此,最大值不应是18,446,744,073,709,551,615(约为1.8x10^19),最好能有类似于1.8x10^25这样的最大值。

实际上,精度并不是非常重要,但如果我不必更改应用程序中的多个数据类型,那肯定会节省我的时间。有什么建议吗?


相关 - Sergey Kalinichenko
除了使用库之外,还有其他的想法吗?这样做意味着我需要确保它遵循NSCoding协议,因为我正在使用它来保存我的数据。 - Kjell Connelly
http://stackoverflow.com/questions/18056764/numeric-values-bigger-than-ullong-max - Sam B
NSDecimalNumber怎么样? - rmaddy
1
相信再多六个零就可以让特朗普的财富增加一百万亿倍(假设你相信他大约有100亿美元的估计值)。那可真是一大笔钱。 - danh
1个回答

1

简短回答
使用第三方库。

详细回答
当处理大量数字时,最基本的设计决策之一是如何表示这个大数字?

它将是一个字符串、数组、列表还是自定义(自己编写的)存储类。

在做出这个决定后,实际的数学运算可以分解成较小的部分,然后使用本地语言类型(如int或integer)执行。

即使对于字符串,其字符或数字的数量也有限制,如此处所示:

.NET字符串的最大可能长度是多少?

您还可以查看:任意精度算术


为什么要使用第三方库?只需使用NSDecimalNumber即可,它支持比OP需要的更大的数字。 - rmaddy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接