【问题标题】:Getting error while trying to convert a string into a large number [duplicate]尝试将字符串转换为大数时出错[重复]
【发布时间】:2017-01-03 01:10:06
【问题描述】:

我在尝试保存从字符串值转换而来的大量数字时遇到错误,我知道它比 CUnsignedLongLong 大,但是有什么方法可以解决这个问题吗?

var strVal = "999999999999999999999"
var n : CUnsignedLongLong = CUnsignedLongLong(strVal)! // Getting error on this line 

致命错误:在展开可选值时意外发现 nil

【问题讨论】:

  • 用于处理大数值,将数据存储到数组中并创建自定义方法来执行算术,我们不能使用外部值:即任何数据类型提供的最小值和最大值
  • 看看NSDecimalNumber

标签: ios swift


【解决方案1】:

您收到错误,因为它超出了CUnsignedLongLong 的范围。 CUnsignedLongLong 的最大值是 18,446,744,073,709,551,615 而你试图分配价值999,999,999,999,999,999,999

【讨论】:

  • 是的,我知道,但我需要解决这个问题
  • @Jan 那么你只需要谷歌搜索更大的数据类型...
  • @Jan 您的问题与此无关。你可以试试那个库 - github.com/githotto/osxgmp
  • 如果你不声明显式类型,Swift 会推断它。 @简
  • @PavelGatilov 是的,检查了一下,似乎是非常好的方法
猜你喜欢
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-27
相关资源
最近更新 更多