情報システム部門での経験から生まれた、格言、迷言集です。

【intに短し、longに長し】

»

■原典:

 帯に短したすきに長し

■意味:

 int型で定義するには桁が足りないが、long型で定義するには大げさという意味。

■解説:

 Java言語の場合、int型は32bit(-2^31)~(2^31-1)で、long型は64bit(-2^63)~(2^63-1)になります。ただの利用メモリの効率だけならたいした問題はありませんが、long型やdouble型は、2つの32ビット値として扱うことが許されているため、そのままではスレッドセーフな動作が保証されません。

 その場合、volatile宣言を行い、アトミック性を確保する必要が出てきます。

 9桁の整数なら、int型の範囲内ですが、10桁となると、int型の範囲を超える場合がある、色々と厄介なことが増えてしまいます。

●用例:

 

現木さん

川伊さん。この間のヨソノ工業様のデータ連携プログラムで、時々異常終了するって件、解決したよ。

 

川伊さん

え、なんだったんですか?

 

現木さん

取り込んだデータの数量を加算している処理で、int型の範囲を超えるデータが発生していたんだ。

 

川伊さん

そういえば、最近大口の取引が増えてきてるって聞いてたけど、その関係もあるのかな。

 

現木さん

関係する箇所を、int型からlong型に変更するだけですんだよ。

 

軽井主任

「intに短し、longに長し」ってか。

 

川伊さん

すべてlong型にするっていっても、大変だもんね。


登場人物と相関図

Comment(2)

コメント

彩都

ん? 表現として逆じゃないですか。
intに入れるには長く、longに入れるには短い、ということだから
「longに短し、intに長し」と表現すべきでは?

ちゃとらん

じぇじぇじぇ!
ご指摘の通り、間違ってますね。

この場をお借りして、訂正とさせていただきます。

「longに短し、intに長し」です。

本当に、ありがとうございました。

コメントを投稿する