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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
もも

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

#1

投稿記事 by もも » 17年前

整数型変数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
となってしまうのですが、どういう順番ですればいいのでしょうか。
教えてください。

box

Re:無題

#2

投稿記事 by box » 17年前

bはint型です。b/2は1.5ではなく、小数点以下を切り捨てた1です。
その1をaに加えます。aは3です。
その3をdに代入します。

管理人

Re:無題

#3

投稿記事 by 管理人 » 17年前

ももさん、こんにちは。

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

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

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

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

閉鎖

“C言語何でも質問掲示板” へ戻る