- ベストアンサー
小数点切捨て表示
printf(printf以外でもOKです)にて浮動小数点を画面に表示するときに、小数点第3位以下を切り捨てて表示したいのですが、書式指定等をどのように指定すればよいでしょうか。 回答よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1さんの方法だと、負の場合に問題が起きます。 確実に切り捨てるには、 double x; ... modf(x*100, &x); printf("%.2f\n", x/100); とするとよいでしょう。 C99ならtrunc関数が使えるので、modfの代わりに使用してもよいと思います。
その他の回答 (1)
- hisa1972
- ベストアンサー率53% (268/500)
回答No.1
変数 a を出力する場合の例です。 printf("%.2f",a-0.005) で大丈夫です。 ここで、 .2 は少数以下 2桁まで出力することを意味します。 この場合、3桁目が四捨五入されるので、 0.005 を減算することにより 「切り捨て」にしています。 統合開発環境であれば、ヘルプに載っていますよ。
質問者
お礼
早速の回答本当にありがとうございました。 参考になりました。使わせていただきます。
お礼
そうですね、負の値だと問題ですね。 回答していただきありがとうございました。 modfを使わせていただきます。