我正在開發iPhone應用程序。我想從字符串中解析一系列數字。但是,intValue的行爲真的很奇怪。iPhone int解析
我有值的字符串1304287200000.
我再放置的,該進的intValue一個NSInteger,你瞧,我的整數分配的2147483647
值某些原因是什麼原因呢?
我正在開發iPhone應用程序。我想從字符串中解析一系列數字。但是,intValue的行爲真的很奇怪。iPhone int解析
我有值的字符串1304287200000.
我再放置的,該進的intValue一個NSInteger,你瞧,我的整數分配的2147483647
值某些原因是什麼原因呢?
數據類型int
是一個32位數值,範圍大約爲±2十億。 1304287200000在該範圍之外。
您需要跳過int
爲long long
這是一個64位類型,並涵蓋您的需要。對於64位類型,更易於理解的人名是int64_t
。
謝謝,應該想出了一個,哈:)。祝你有個愉快的一天,並感謝所有貢獻的人! –
你的數目超過整數限制
int
是32位,所以它可容納的最大值是2,147,483,647。改爲嘗試longLongValue
。
'-intValue'不會返回'NSInteger'而是'int'。 'NSInteger'和'int'可以是相同的位大小(事實上在iOS上,它們是),它們不需要在所有平臺上。 – gcbrueckmann
非常有趣;我已經更新了我的答案。謝謝! –
你回來的是INT32_MAX
,因爲解析的值溢出了int
類型。這在NSString
documentation中有解釋。請改爲longLongValue
,LLONG_MAX
應該足夠大。
嘗試使用更大的東西,然後整數;) – Jacob