【问题标题】:iPhone int parsingiPhone int 解析
【发布时间】:2011-08-09 06:57:28
【问题描述】:

我正在开发一个 iPhone 应用程序。我想从字符串中解析一系列数字。但是,intValue 的行为真的很奇怪。

我有一个值为 1304287200000 的字符串。

然后我将它的 intValue 放入一个 NSInteger 中,你瞧,我的整数由于某种原因被赋值为 2147483647。

什么给了?

【问题讨论】:

  • 尝试使用大于整数的东西;)

标签: iphone objective-c


【解决方案1】:

数据类型int 是一个32 位数值,范围约为±20 亿。 1304287200000 超出该范围。

long long 是 64 位类型,可以满足您的需求,您需要跳过 int。 64 位类型更易读且更明确的名称是int64_t

【讨论】:

  • 谢谢,应该已经知道了,哈哈:)。祝您有美好的一天,感谢所有做出贡献的人!
【解决方案2】:

返回的是INT32_MAX,因为解析后的值溢出了int 类型。这在NSString documentation 中有解释。试试longLongValueLLONG_MAX 应该够大了。

【讨论】:

    【解决方案3】:

    int 是 32 位的,所以它可以容纳的最大值是 2,147,483,647。请改用longLongValue

    【讨论】:

    • -intValue 不返回NSInteger,而是返回intNSIntegerint 可以是相同的位大小(实际上在 iOS 上,它们是)它们不需要在所有平台上。
    【解决方案4】:

    您的数字超出整数限制

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-21
      • 2011-08-26
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-31
      • 1970-01-01
      相关资源
      最近更新 更多