BACK
2016-06-09

Javaのint掛け算でオーバーフロー

Javaの掛け算で、計算結果がMAX_INT超えそうなところで下記のようにしていたが、見事にオーバーフローしていた。

int aaa = 100000;
int bbb = 300000;
long res = aaa * bbb; //OMG!!

戻り値だけ大きな入れ物を用意しておけばいいのかと思っていたが、そうでもなかったらしい。
解決策としては、掛け算の要素をlongにする。

long res = (long)aaa * bbb; //OK

しかし、オーバーフローしても何も言われないのは結構怖いな。。。

BACK