ベストアンサー 小数点切捨て表示 2007/02/25 21:43 printf(printf以外でもOKです)にて浮動小数点を画面に表示するときに、小数点第3位以下を切り捨てて表示したいのですが、書式指定等をどのように指定すればよいでしょうか。 回答よろしくお願いいたします。 みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー jacta ベストアンサー率26% (845/3158) 2007/02/26 11:25 回答No.2 #1さんの方法だと、負の場合に問題が起きます。 確実に切り捨てるには、 double x; ... modf(x*100, &x); printf("%.2f\n", x/100); とするとよいでしょう。 C99ならtrunc関数が使えるので、modfの代わりに使用してもよいと思います。 質問者 お礼 2007/02/26 11:54 そうですね、負の値だと問題ですね。 回答していただきありがとうございました。 modfを使わせていただきます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) hisa1972 ベストアンサー率53% (268/500) 2007/02/25 22:00 回答No.1 変数 a を出力する場合の例です。 printf("%.2f",a-0.005) で大丈夫です。 ここで、 .2 は少数以下 2桁まで出力することを意味します。 この場合、3桁目が四捨五入されるので、 0.005 を減算することにより 「切り捨て」にしています。 統合開発環境であれば、ヘルプに載っていますよ。 質問者 お礼 2007/02/25 22:26 早速の回答本当にありがとうございました。 参考になりました。使わせていただきます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発C・C++・C# 関連する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にし、整数での表示にさせています。 しかしそれらを足し算すると結局正確に小数点以下の数値まで 足されてしまいます。そうしないためには? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム 小数点第二位以下を切り捨て 例えば、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位以下を切り捨てるよう指定することはでしますか? 固定小数点と浮動小数点 電算機の小数点認識に固定小数点と浮動小数点というのがあると聞きました。前者は分かるのですが、浮動小数点のWikiとかの記述を見てもあまりピンときませんでした。わかりやすい説明はないでしょうか。 「小数点第2位まで表示」というのは正しいでしょうか 「小数点以下第2位まで表示」か「小数点未満第2位まで表示」が正しいと思っていたのですが、標題のような言い方がよく出てくるのですが、正しいのでしょうか。 「小数点第3位未満を切り捨てて第2位まで表示する」という言い方ならわかるのですが。 また、厳密に言ったら「小数点未満」と「小数点以下」だと「未満」の方が正しくないですか? 基本的なことがわからなくなってしまいました。おわかりになる方教えてください。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 浮動小数点は 0 含まれますか 0 は整数 integer ですが、 浮動小数点でもありますか? 0.00000 は浮動小数点ですか? printfの小数点以下の表示桁数につい Java超初心者です。宜しくお願い致します。 System.out.printf("%8f\n",15.8); は8桁表示のはずですが、 実行すると、 15.800000 と、いう風に9桁になります。 詳しい方はきっと当たり前と思うと思いますが、 小数点以下の桁数がどういう基準で決められるのか、 つまりゼロ(0)がいくつ並ぶか、というのがよくわかりません。 %12f に変更すると、 15.800000 と、左側にスペースが3つ入ります。 12桁と指定しても、小数点以下のゼロが5つだから、左にスペースが3つ入るわけですよね。 結局、小数点以下の桁数を指定していないのに勝手にゼロが並ぶので、 表示は実行してみるまでどうなるか解らない、という状況です。 規則というか、ルールを解りやすく教えて頂けると嬉しく思います。 宜しくお願い致します。 割り算の答えを四捨五入でなく切り捨てで小数点以下を消したい エクセルで割り算の式を入れました。その答えが例えば5,897.78円だとします。小数点以下を切捨てで表示したいのですが、セルの書式設定で小数点以下を0にすると自動的に5,898になってしまいます。5,897と表示させるにはどうしたら良いでしょうか? 小数点以下がある時だけ表示する方法(点なし) Office365使用しています。 Excel書式設定で 小数点以下が存在しない場合は小数点を表示せず 小数点以下がある場合のみ、小数点以下の数字と小数点を表示をしたく 下記、2つの書式設定の組み合わせで実現しております 書式設定1 【数式】=IF(RIGHT(TEXT(A1,"0.#"),1)=".",TRUE,FALSE) 【表示形式】数値(-1234) 書式設定2 【数式】=IF(RIGHT(TEXT(A1,"0.#"),1)=".",FALSE,TRUE) 【表示形式】#,##0.#;[赤]-#,##0.# 小数点第二位を表示させるには、どこをどのように修正すれば良いのでしょうか。 お詳しい方、ご教授お願い致します。 -------------------- こういったことを質問すると、私の文章が悪いのか 「そんなことも分からないのか」といった嫌味なコメントが届きます。 分からないのでお尋ねしているので、そこはどうかご容赦ください。 エクセル 小数点の位置をそろえる書式にしたい 例えばセルA1から下に 100 10 1 0.1 0.01 0.001 と入力します これを小数点の位置をそろえた書式にしたいです 小数点以下3桁の書式と同じ形で、小数点以下を表示しなくてよい時は、表されない書式です 100 _10 __1 __0.1 __0.01 __0.001 こういう表し方になる書式にしたいです EXCELで小数点だけを表示させたい EXCELで注文書を作っています。注文書の中に、整数と 小数点を分けて表示したいのですが、どうしてもわからないので、 質問しました。 例えば、123.45とA1に入力した場合、B1に123(整数のみ表示) C1に45(小数点のみ表示) したいのです。 セルの書式設定のユーザ定義で出来ませんでしょうか? もし、出来る場合どのような指定をすれば良いのでしょうか? バージョンは、EXCEL2007です。 よろしくお願い致します。 浮動小数点の切り捨てで-0.5を-1に。 こんにちは。 小数点以下を切り捨てたいときにキャストするために 以下のようにしたところ、 float i ; for( i=-2.5f; i<3.5f; i+=1.0f ) { printf( "%f %d\n", i, (int)i ) ; } -2.500000 -2 -1.500000 -1 -0.500000 0 0.500000 0 1.500000 1 2.500000 2 上記の様な結果になりましたが、これを -2.500000 -3 -1.500000 -2 -0.500000 -1 0.500000 0 1.500000 1 2.500000 2 のように-0.5なら-1にするようしたいのですが、 if文は使わずに計算だけで変換することは 可能でしょうか ? エクセルのセル表示。整数は整数、小数点は小数点で。 エクセル2003です。 セルに数値を入力した際、以下のようにすることは可能でしょうか。 (1)5と入力→5と表示 (2)5.5と入力→5.5と表示 セルの書式設定で小数点表示の設定、例えば小数点1桁表示をすると (2)はうまくいきますが、(1)は5.0となります。 これを「5」にできればベストなのですが、無理でしょうか。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
そうですね、負の値だと問題ですね。 回答していただきありがとうございました。 modfを使わせていただきます。