私はiPhoneアプリで作業しています。私は文字列から一連の数字を解析したい。しかし、intValueは本当に変です。iPhone int parsing
私は、その後NSInteger、およびLOにそのintValueを置き、見よ、わたしの整数は2147483647
何の値を割り当てられた何らかの理由で値1304287200000.
の文字列を持っています与えるか?
私はiPhoneアプリで作業しています。私は文字列から一連の数字を解析したい。しかし、intValueは本当に変です。iPhone int parsing
私は、その後NSInteger、およびLOにそのintValueを置き、見よ、わたしの整数は2147483647
何の値を割り当てられた何らかの理由で値1304287200000.
の文字列を持っています与えるか?
データ型int
は約±20億の範囲で、32ビットの数値です。 1304287200000はその範囲外のマージン分です。
long long
の場合はint
をスキップする必要があります。これは64ビットタイプであり、必要性をカバーしています。 64ビットタイプの人間が読める明示的な名前はint64_t
です。
ありがとうございました。素敵な1日を過ごし、貢献したすべての人に感謝します! –
電話番号超える整数制限
int
は32ビットなので、保持できる最大値は2,147,483,647です。代わりにlongLongValue
を試してください。
'-intValue'は' NSInteger'を返すのではなく 'int'を返します。 'NSInteger'と' int'は同じビットサイズにすることができます(そして、実際はiOS上にあります)、それらはすべてのプラットフォーム上にある必要はありません。 – gcbrueckmann
非常に興味深い;私は私の答えを更新しました。ありがとう! –
戻り値はINT32_MAX
です。解析された値がint
タイプをオーバーフローするためです。これはNSString
documentationで説明されています。代わりにlongLongValue
を試してください。LLONG_MAX
は十分に大きいはずです。
整数より大きいものを試してみてください;) – Jacob