chanting an air of joyous bliss

普段の生活で見逃しがちな面白いことを書いていく
そんなブログです

Java ParseInt再び

2006-12-20 12:47:20 | Java
画面の入力チェックをやっているときの出来事
(Aさん):また、Integer#parseIntでNumberFormatExceptionが出てるんだけど。
(Aさん):10桁の数字入力は大丈夫なんだけど、11桁数字を入力すると落ちるんだけど。
(私):ソースを見せてください
(私):うーん、IntegerのparseIntを使っているから11桁の数字を入力したとき、数字変換で桁あふれしてるんじゃないですかね?

ここで、Javaの基本型についておさらいする。
int型は符号付32ビットの数値が扱える。
すなわち-2^31 ~ 2^31-1までの数値が扱える
log10 2^31=9.33なので正の数は最大10桁まで扱える。
long型は符号付64ビットの数値が扱え、最大19桁までの数字が扱える。
IntegerのparseIntは文字列をint型の数字に変換してくれる。
もし、int型で扱える範囲以上の長さを持つ文字列が渡されたとき、NumberFormatExceptionがthrowされる。
(JavaDocにそう書いてあったよ?)

(私):LongのparseLongを使ってください。
(Aさん):他のソースもこのロジックがたくさん使われているよ?
(Aさん):修正どうしよう?
(私):・・・

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 前の記事へ | トップ | 次の記事へ »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Java」カテゴリの最新記事