• ベストアンサー

どうしたらいいですか?

キーボードから入力された実数(double a)の少数第一位の値が5以上なら「切 り上げ」、4以下なら「切り捨て」と表示する。と同時に四捨五入した値を表示 する。ってどうやっらら良いですか?  整数なら10で割った値の余りを評価すれば良いですが、実数ではどうすれば良いですか? また、同時に表示するにはどうすれば良いでしょうか? さっきこの質問をし、回答をいただいたみたいなのですが、そのページか「見つからない」と言われ見る事が出来なかったので再度質問させていただきます。 宜しくお願いします

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

  • ベストアンサー
  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

0.5と0.4の問題は10倍してから評価すればOKです。 また、四捨五入は0.5を加えてから整数に直してやればOKでしょう。

ZZR1200
質問者

補足

回答ありがとうございます。次のようなプログラムを作ったのですがうまく動きません。aの値をうまく読み込んでもらえません。違うところがありましたら指摘ください。 #include <stdio.h> int main (void){ double a,b,c; puts("少数第一位まで値を入力してください"); printf("値a:"); scanf("%.1lf",&a); b=10*a; c=a+0.5; int d=c; if((int)b%10>=5){ printf("切り上げです\n"); printf("四捨五入した値は%dです。\n",d); } else { printf("切り捨てです。\n"); printf("四捨五入した値は%dです。\n",d); } return (0); }

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ara_ara
  • ベストアンサー率35% (124/348)
回答No.3

aを整数化した値nと、a+.5を整数化した値mを比較すればいいのではにでしょうか? ・n=mなら切捨て ・n+1=m(n<>m)なら切り上げ

ZZR1200
質問者

お礼

ひとつの命令でも、色んなアプローチの仕方があるんですね。勉強になりました。 回答ありがとうござます。

全文を見る
すると、全ての回答が全文表示されます。
  • khurata
  • ベストアンサー率40% (54/134)
回答No.2

 Cの double型は内部的には 2進数ですので(ほぼ全ての処理系でそうなっているはずです)、小数を扱うと誤差が生じるケースがあるはずです。  なので、キーボードから入力された小数を数値ではなく、まずは文字列として受け取り、小数点の右側と左側をそれぞれ整数型に変換して、それぞれ独立した計算処理をするのが、より厳密で、理想に近い処理と言えます。  ただ、そこまでの精度が必要無ければ、#1の回答のように 10.0倍して処理すれば良いと思います。

ZZR1200
質問者

お礼

まず文字式でやるという方法もあるんですか。又チャレンジしてみます!とりあえず今回は10倍で行こうと思います。 回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 中学受験 がい数の問題

    《質問》ある整数を6で割った商の少数第1位を四捨五入すると6になり、同じ整数を8で割った商の少数第1位を四捨五入すると4になります。ある整数は( )です。(すべて求めなさい。 《答え》33、34、35 この問題をどのように解き進めていけばよいのか、解説をお願いしますm(_ _)m

  • エクセルの使い方

    エクセルの使い方を教えてください。 大変初歩的なことですが、お願いいたします。 エクセルの表計算で、少数以下の掛け算で合計の数字が少数点以下まで表示されます。 この数値を四捨五入にして、整数にし、さらにこの数値に数値をかけます。 ただ、この四捨五入した数値を整数とは認識せず、少数以下の数値で計算するため、求めたい数値になりません。 この四捨五入した数値を整数と認識するための方法をおしえてください。

  • 或る列に整数部3桁少数桁2桁の数値が並んでおります。これを少数点第一位

    或る列に整数部3桁少数桁2桁の数値が並んでおります。これを少数点第一位で四捨五入した値(整数)にしたいのですがどのような方法がありますでしょうか? お解りの方がおられたら教えてください。 宜しくお願いします。

  • エクセルの表計算

    少数点第三位以下切捨て・四捨五入のやり方が分かりません。 簡単な質問かもしれませんが、困っているのでよろしくお願い致します。

  • VB6 丸めるとは?

    VB6で、 Mod演算子のMSDNヘルプを見てみると、 「演算結果は整数に丸められる」 とあります。 例として19 Mod 6.6は5.8ですが5になってしまいます。 また、CInt関数について同じくヘルプで調べてみると、 「少数部分は丸められます」 とあり、CInt(5.8)とすると6となってしまいます。 質問なのですが、 「丸める」と一口にいっても、四捨五入したり、切り捨てたりといろいろあるのだという認識であっているでしょうか? CIntなら小数部は四捨五入され、Modならいかなる数字であろうと小数部は切り捨てられる、ということでよいでしょうか?

  • 評定

    大変初歩的な質問で申し訳ありません。評定は少数点以下四捨五入ですか?切り捨てですか?水増しになるので切り捨てかなあと想像するのですが・・・

  • お願いします!今すぐ教えて下さい!

    ある整数を6で割った商の少数第一位を四捨五入すると9になりました。このような整数のうち一番大きいものを求めなさい。

  • javaでの金額の丸めについて(至急、お願いします

    調べ方が足りていないのかもしれませんが、 わかりませんでした。教えていただけないでしょうか。 金額の丸め処理をしたいのですが、どのように書けばいいのかわかりません。 金額は、もちろんマイナス表記もあります。 100円単位の切捨て、切上げ、四捨五入 1000円単位の切捨て、切上げ、四捨五入 少数以下の処理は、いろいろとサンプルがあったのですが・・・・ どなたかご教授願います。

    • ベストアンサー
    • Java
  • エクセル・整数未満切捨ての処理について

    情報処理技能検定、表計算(エクセル)3級模擬の問題について おたずねします。 整数未満切り捨ての処理を、すでにした列に 「平均(整数未満四捨五入の表示)」、「最高」、「最低」 の値を、左からオートフィルすると、 たとえば、99.1と出た場合、 どう処理したら、99(整数未満切り捨て)になりますか? ご存知の方がいらっしゃいましたら、ご教示下さい。 よろしくおねがいします。

  • 四捨五入

    実数Xの小数点以下2桁目を四捨五入して実数Hとするプログラムと Xの10の位を四捨五入して整数Lとするプログラム(Xは正の整数) を教えてください。

    • ベストアンサー
    • Java