• ベストアンサー

小数点切捨て表示

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

  • JJman
  • お礼率62% (5/8)

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

  • ベストアンサー
  • 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

  • 浮動小数点表示の問題です教えてください。

    浮動小数点表示の問題です教えてください。 ・浮動小数点表示は10進数でいくつを表しているか? 符 指数 仮数 0 000 00 0 000 01 0 000 10 ・  ・   ・ ・  ・   ・ ・  ・   ・ 1 111 01 1 111 10 1 111 11 ±□×2^□ の形で表として示せ。 という問題です。 回答お願いします。

  • 浮動小数点表示と固定小数点表示

    固定小数点0.00128を浮動小数点表示すると0.128×10^-2と学校で習ったのですが、1.28×10^-1や128×10^-5としてはいけないのでしょうかどなたか教えてください。

  • 小数点以下切捨てした上での足し算

    書式設定で小数点以下の桁数0にし、整数での表示にさせています。 しかしそれらを足し算すると結局正確に小数点以下の数値まで 足されてしまいます。そうしないためには?

  • 小数点第二位以下を切り捨て

    例えば、30.47を、30.4と、小数点第二位以下を切り捨てて表示し、足し算等の計算したいです。 30.47を入力するセル自身しか使えないという制限が有る場合、 セルの書式設定等での対応方法は有りますか。 ご教示、宜しくお願いします。

  • 小数点第一位まで表示したいのですが

    「1」は、「1」で、「1.1」なら、小数点第一位まで表示したいのですが 列全体に書式設定を設定したい場合、 どう設定すればいいのでしょうか? 数値で小数点以下の桁数を1にすると、「1」が「1.0」になってしまいます。 理想の表示形式は添付画像の通りです。

  • 「浮動小数点表示」と「丸め」について

    数値解析についての質問です。 「23.49を有効数字4桁の浮動小数点表示で書け」という問題があるときは 0.2349 * 10^2 と答えるのが正しいのでしょうか。 つまり「浮動小数点表示で答えよ」とあれば、 0.○○○... * 10^○の形で書けば良いのでしょうか。 また、数値の丸めの仕方に関する質問なのですが、教科書に以下のような記述がありました。 k+1桁以降の数を切り捨てる a.この切り捨てられた数が第k桁の単位の半分より小さいときは、第k桁の数はそのままにする。 b.もし半分より多きときには第k桁の数に1を加える c.この切り捨てられた数が第k桁のちょうど半分のときには最も近い偶数に丸める とあるのですが、その後の記述で 「1.2535をそれぞれ小数点以下3桁、2桁、1桁で丸めると、1.254,1.25,1.3が得られる」また「小数第3位以下の情報なしで、1.25を1桁で丸めると1.2になる」とあるのですが、 後者が1.2になるのは理解できるのですが、最初の規則に則ると前者も1.2になるように思うのですが、何故1.3になるのでしょうか。 以上の規則に則った上で以下の問題に答えてみました。 問.-89.216618, 500000, -0.002213675を丸めて有効数字5桁の浮動小数点表示で書け 僕の答え -0.89217 * 10^2 0.50000 * 10^6 -0.22137 * 10^-2 というのは合っていますでしょうか。 質問が多くて大変恐縮ですが、解説、ご指摘をお願いします。 よろしくお願いします。

  • ACCESSで小数点以下の表示を制限する

    こんにちは。 ACCESS2003を使っています。 フォーム上で、テーブルの特定の項目(単精度浮動小数点型)を、小数点以下2桁まで表示させています。 この項目は事前に小数点以下3桁目を四捨五入しています。 そしてテーブルの定義で少数点以下2桁まで表示させています。 確かにそのとおり表示されるのですが、そのテキストボックスにカーソルを位置付けると小数点以下10桁以上の小さな数字が表示されてしまいます。 1.これは誤差として避ける事ができないのでしょうか? 2. カーソルを位置づけた時、指定桁数以下を表示させないようにはできないでしょうか?

  • Access2000 小数点以下を2桁表示

    こんにちわ。 アクセスであるテーブルを元にフォームを作成しています。 元データは「123.4567890」となっています。 (倍精度浮動小数点型です。) このデータをフォーム上では「123.45」まで表示したいのですが上手く出来ません。プロパティーの書式で 小数点表示桁数を「2」にしてもダメでした。 どうしたものでしょうか? ご教授ください。。

  • Access2000のレポートで小数点の表示が出来ない

    テーブルでも、クエリーでもちゃんと10.5と出ているにも拘らず、レポートだと11になってしまいます。 しかも1箇所だけで、他のテキストは小数点がちゃんと表示されます。 書式設定を標準にして、小数点以下の表示を1にすれば、10.5と表示されるのですが、それだと、他の小数点以下が無いものまで小数点表示されてしまいます。 すいませんが、教えて下さい。

  • Excelの表示形式で切り捨て

    ROUND関数ではなく、書式の表示形式で、小数点1位以下を切り捨てるよう指定することはでしますか?

専門家に質問してみよう