• ベストアンサー

小数点切捨て表示

printf(printf以外でもOKです)にて浮動小数点を画面に表示するときに、小数点第3位以下を切り捨てて表示したいのですが、書式指定等をどのように指定すればよいでしょうか。 回答よろしくお願いいたします。

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

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

#1さんの方法だと、負の場合に問題が起きます。 確実に切り捨てるには、 double x; ... modf(x*100, &x); printf("%.2f\n", x/100); とするとよいでしょう。 C99ならtrunc関数が使えるので、modfの代わりに使用してもよいと思います。

JJman
質問者

お礼

そうですね、負の値だと問題ですね。 回答していただきありがとうございました。 modfを使わせていただきます。

その他の回答 (1)

  • hisa1972
  • ベストアンサー率53% (268/500)
回答No.1

変数 a を出力する場合の例です。 printf("%.2f",a-0.005) で大丈夫です。 ここで、 .2 は少数以下 2桁まで出力することを意味します。 この場合、3桁目が四捨五入されるので、 0.005 を減算することにより  「切り捨て」にしています。 統合開発環境であれば、ヘルプに載っていますよ。

JJman
質問者

お礼

早速の回答本当にありがとうございました。 参考になりました。使わせていただきます。

関連するQ&A