プロが教える店舗&オフィスのセキュリティ対策術

プログラム内での計算

情報処理試験やオープンソースのコードに書かれている計算式について分からないことがあります。
時々、

int sample = ((100*100) / temp) * temp;

といった計算式を見ます。
この式では分母がtempの分数にtempをかけているのでtempが打ち消しあっていると思うのですが・・・。
何かこのtempには意味があるのでしょうか?
また、この式でtempがある場合とない場合では何が違うのでしょうか??

A 回答 (2件)

割り算は小数まで計算する場合と整数だけで計算する場合があると思います。

そして、整数だけで計算する場合は商とあまりを出しますよね。int型の割り算は整数で割り算をするので/で演算をすると商を計算して、%で演算すると余りを計算するということになっています。

(100*100)/tempが余りがある計算だった場合、その商にtempを掛けるわけですから、当然結果が変わってきます。例えば、tempが3の場合、(100*100)/3はこの計算の商である3333で、それに3を掛けるので3333*3で9999となり、100*100にはなりません。
つまり、この計算は100*100に一番近いtempの倍数を出すのに使えます。
    • good
    • 0
この回答へのお礼

なるほど!

わかりました。
ご丁寧に例まで書いていただき、ありがとうございます。

お礼日時:2010/10/23 20:49

計算順序によっては、意味があります。



int型(整数型)の計算の場合、小数点以下が切り捨てられます。

例えば、「temp」がint型だった場合、
100*100
で10000。
これをtempで割るので、int/intで答えはint型。
小数点以下が切り捨てられた答えにtempを掛けることになります。
    • good
    • 0
この回答へのお礼

解決しました。
ありがとうございます。

お礼日時:2010/10/23 20:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!