iPhone int 解析
Posted
技术标签:
【中文标题】iPhone int 解析【英文标题】:iPhone int parsing 【发布时间】:2011-08-09 06:57:28 【问题描述】:我正在开发一个 iPhone 应用程序。我想从字符串中解析一系列数字。但是,intValue 的行为真的很奇怪。
我有一个值为 1304287200000 的字符串。
然后我将它的 intValue 放入一个 NSInteger 中,你瞧,我的整数由于某种原因被赋值为 2147483647。
什么给了?
【问题讨论】:
尝试使用大于整数的东西;) 【参考方案1】:数据类型int
是一个32 位数值,范围约为±20 亿。 1304287200000 超出该范围。
long long
是 64 位类型,可以满足您的需求,您需要跳过 int
。 64 位类型更易读且更明确的名称是int64_t
。
【讨论】:
谢谢,应该已经知道了,哈哈:)。祝您有美好的一天,感谢所有做出贡献的人!【参考方案2】:返回的是INT32_MAX
,因为解析后的值溢出了int
类型。这在NSString
documentation 中有解释。试试longLongValue
,LLONG_MAX
应该够大了。
【讨论】:
【参考方案3】:int
是 32 位的,所以它可以容纳的最大值是 2,147,483,647。请改用longLongValue
。
【讨论】:
-intValue
不返回NSInteger
,而是返回int
。 NSInteger
和 int
可以是相同的位大小(实际上在 ios 上,它们是)它们不需要在所有平台上。【参考方案4】:
您的数字超出整数限制
【讨论】:
以上是关于iPhone int 解析的主要内容,如果未能解决你的问题,请参考以下文章