閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

オーバーフローには気をつけよう

何も考えずに yyyymmddhhmmss 形式の文字列を整数(int)に変換して比較しようとしたら落っこちて三秒ほど悩んでしまいました。たぶん、もう少し前の自分だったらもっと大きなロスがあったに違いない。

落っこちたのは、単純に yyyymddhhmmss ……つまり 20050810140000 みたいな文字列を整数にする時、この値は int(32Bit) で扱える値を超えているので、オーバーフローが起きるため。何も考えずにコーディングしているとこういうことになるという好例。

とりあえず型を int64 にして逃げてみました。なんて富豪的!