最近やってしまったコーディングミス オーバーフロー

私が最近やってしまったコーディングミスを書きます。

 

何かと言うと、int型✖️int型の計算結果をlong型変数に代入させるときに、少なくとも一つの変数をlong型にキャストするのを忘れてました!

 

何が悪いのかというと、int型✖️int型の結果はint型になるので計算結果がINT_MAXを超えるとオーバーフローし意図した計算結果にならないです。

四則演算の演算子を使用するときは計算結果の型は意識しないといけないですね!

 

後、よくあるのはint型➗int型をfloat型変数に代入するときも意図した計算結果にならない可能性があります。

int型➗int型の計算結果はint型なので小数点部分は切り捨てられて、整数の状態でfloat型変数に代入されます!

対策は少なくとも一つの変数をfloat型にキャストする!ですね。

 

 

こんなミスをゼロにするにはどうしたらいいのか。。

この問題に対してはここでミスをしやすいということを認識した上でプログラム試験時にこの誤りをあぶり出す試験ケースを作ることだと思います!

 

お金と時間はかかりますけどね💦

試験をしっかりしてミスをあぶり出すことが大事ですね!

 

皆さんも気をつけてください!!!