• ベストアンサー

printf("%lf",5/3); は 0.000000 ?

Cを勉強中です。 main(){ printf("%lf",5/3); } をBorland C++ 5.5.1コンパイラで コンパイルして実行すると、 0.000000 と表示されてしまいます 1.666666 と表示するには、何が足りないのでしょうか。

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

  • ベストアンサー
  • atsushifx
  • ベストアンサー率50% (9/18)
回答No.1

printf("%lf",5/3) の 5/3 は整数の割り算となっています。 5.0のように実数を使ってみてください

Caryo_t
質問者

お礼

ありがとうございます! なるほど、整数を使ったからなのですね。 よくわかりました。ありがとうございました。

その他の回答 (1)

  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.2

5/3は整数を整数で割っていますので結果は1.66666ではなく1です。 つまりprintf("%lf",5/3) ;はprintf("%lf",1) ;と書いたのと同じです。ですから 0.000000と表示されてしまうのでしょう。 後はC言語の教科書を読んでください。

Caryo_t
質問者

お礼

整数と小数は、普段は意識しないので、間違っていました。 ご回答で、よく理解できました。ありがとうございました。

関連するQ&A

専門家に質問してみよう