• ベストアンサー

計算式について

本当に初歩的な質問で恥ずかしいのですが、聞くは一時の恥じと申しますので恥じを恐れず質問します・・・ 下記のような計算をした時 int A = 5; int B = 8; double C = A / B; Cには"0.625"が入ると思ったら、結果は"0.0"でした。 なぜでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

整数/整数なので整数部だけをdoubleに変換しているのです。 A*1.0/BとデモすればOKでしょう。

t-tree
質問者

お礼

お答えありがとうございました。 そうですか、では小数点になるかもしれない計算式には 整数を使えないのですね・・・ じゃ最初からdoubleとかfloatで計算しなくてはいけないのですね・・・ じゃ割算式なんかはInt使えませんね・・・

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.2

整数除算が先に行われ、 A / B = 0だからです。 浮動小数で計算するために C=(double)A / B等のように書く必要があります。

t-tree
質問者

お礼

お答えありがとうございました。 答えを入れる変数が浮動小数な変数ならOKかなと思ったのですが・・・ 浮動小数の答えが出る可能性がある計算には答えの変数だけではなく、計算に使われる変数にも同様な変数を使わなくてはいねないのですね。 よくわかりました、ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A