ページ 11

int型とdouble型の演算について

Posted: 2006年12月03日(日) 00:03
by もも
整数型変数a,bの初期値がそれぞれa=2,b=3のとき、以下の式を計算して実数型
変数dを求める(実数となる場合は小数点以下4桁まで記述する)問題なのですが、
d= a += b /= 2;
の答えが3.000
となるようです、 まずb=b/2を計算して a=a+b/2 となって d=a で答えを3.500
となってしまうのですが、どういう順番ですればいいのでしょうか。
教えてください。

Re:無題

Posted: 2006年12月03日(日) 00:17
by box
bはint型です。b/2は1.5ではなく、小数点以下を切り捨てた1です。
その1をaに加えます。aは3です。
その3をdに代入します。

Re:無題

Posted: 2006年12月03日(日) 01:45
by 管理人
ももさん、こんにちは。

まず、int型を計算してdoubleに当てはめる時には(double)を書いたほうが正しいと思います。

int型は計算結果に小数があると、はぶかれます。

3÷2は1.5ですが、1になります。
1÷2は0.5ですが、0になります。

実際の計算過程はboxさんのおっしゃるとおりです。