• ベストアンサー

負の数の四捨五入の方法

charmer29-2の回答

回答No.1

例えば正の数のとき、以下のようになるはずですね。 -- 1.0→1 1.4→1 1.5→2 1.9→2 2.0→2 -- では負の数のときはどうなるべきでしょうか。 それを、正の数のときと比べてみれば、やるべきことが見えてくるはずです。 #ヒント:四捨五入と切り捨て、或いは整数化の違いに注意

namiuti2
質問者

補足

回答ありがとうございます。 正の数のときは確かにそうなりました。 負の数 -1.5の場合は-2.0でしょうか? となると seisu =jissu + 0.5; を    ↓ seisu =jissu - 0.5; にすればいいのかな・・・。 実は大学の決まった教場でしかプログラムが実行できないために確かめようがないのです。 整数化の違いに注意ということはまだ変える部分があるのでしょうか? よろしければお付き合いお願いいたします。

関連するQ&A

  • 四捨五入をするプログラムの書き方を教えてください

    円を入力して、ドルに直し、そのドルを少数点以下2桁で表すために、四捨五入をするプログラムを書きたいです。ただ、まだ授業で、printf, scanf, if文, switch文までしかやってないので、これらを使用してプログラムを書くやりかたを考えています。 四捨五入せずに、切り捨てるプログラムは下のように書いてみました。 よろしくお願いします。 #include <stdio.h> main() { double Y,D; printf("金額(円)を入力せよ:",Y); scanf("%lf",&Y); D=Y/101.48; printf("米ドルでは、%.2lfドルです。\n",D); }

  • 四捨五入

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

    • ベストアンサー
    • Java
  • プログラミング 実数 合計

    3つの実数を読み込んで合計を表示するというプログラムなんですが、プログラムをコンパイルして3つの実数を入力してくださいと表示させて実数1に1.5、実数2に0.8、実数3に1.0, 合計は3.3です表示させたいのですが #include <stdio.h> int main(void) { double n1,n2,n3; puts("3つの実数を入力してください。"); printf("実数:"); scanf("%lf", &n1); printf("実数:"); scanf("%lf", &n2); printf("実数:"); scanf("%lf", &n3); printf("合計は%5.lfです。\n",(double)(n1 + n2 + n3)); return (0); } でコンパイルしようとすると1つしか実数を入力する所が出てこなくて 数字を入れると合計は.lfですと出てきて実行できないのですが、上のソースのどこか間違ってる所があったら教えてくれませんか?

  • プログラミング 実数 合計値

    プログラミング 実数 合計値 3つの実数を読み込んで合計を表示するというプログラムのソースについてなんですが #include <stdio.h> int main(void) { double na, nb, nc; puts("3つの実数を入力してください。"); printf("実数:"); scanf("%5.lf", &na); printf("実数:"); scanf("%5.lf", &nb); printf("実数:"); scanf("%5.lf", &nc); printf("合計は%5.lfです。\n", (double)(na + nb + nc); return (0); } でコンパイルしてみたんですが、構文エラーでreturnの前の行で')'が';'の前にありません というのが出てきてコンパイルできないのですが、これはどこが間違ってるんでしょうか?

  • 切り捨て、切り上げ、四捨五入

    数学で切り捨て、切り上げ、四捨五入を習いましたが、正の数だけでした。 最近、マイナス値についての切り捨て、切り上げ、四捨五入を考えるようになりました。 切り捨て-4.2なら-4?-5?-4.8なら-4?-5? 切り上げ-4.2なら-4?-5?-4.8なら-4?-5? 四捨五入-4.2なら-4?-5?-4.8なら-4?-5? の時、それぞれいくつになるのでしょう? コンピュータで計算したいときはほしい結果がわかっているので使い分けできますが、 数学の定義としてどちらが正しいかを教えて下さい。

  • 2進数の足し算(C言語)

    C言語初学者です。 タイトル通り、2進数の足し算をするプログラムを作っていますが、行き詰ってしまいました。 特に、桁上げをどうするか悩んでいます。 今の自分の考えでは、入力された数値を10で割り、その余りを足していけばできると思っていたのですが、やはり桁上げや繰り上がりに悩んでいます。 全然できてませんが以下ソースです。 #include <stdio.h> int main(void) { int a, b, i; do { printf("8桁以下の非負の2進数を入力してください(1つ目): "); scanf("%d" ,&a); if (a < 0) puts("負の数を入力しないでください。"); } while (a < 0); do { printf("8桁以下の非負の2進数を入力してください(2つ目): "); scanf("%d" ,&b); if (b < 0) puts("負の数を入力しないでください。"); } while (b < 0); a = a % 10; b = b % 10; よろしくお願いします。

  • エクセル 負の値の四捨五入

    エクセルのバージョンは2002です J404セルは、千円単位での入力(書式ではなく)がなされており、たとえば10万500円なら「100.5」と入力されています。 そこで、これを円単位に修正したうえで円未満を四捨五入したいのですが、 このセルの値として、正の値と負の値の両方が考えられる場合にROUND関数をどのように使ったらいいでしょうか? 実際に「-4533.5695」や「-830.521700000002」という値があり、 =IF(J404>0,ROUND(J404*1000,0),ROUND(J404*-1000,0)*-1) などと試したのですがうまくいきません。 ROUNDDOWNを組み込んでも駄目でした。 負の値をうまく四捨五入できる式は無いでしょうか? よろしくお願いします。

  • C言語で・・

    実数データを入力し、小数点以下四捨五入したときの値を表示せよ。 自分では、以下のように作りました。 #include<stdio.h> int main(void) { float f_a,s; int i_a; printf("実数データを入力してください"); scanf("%f",&f_a); i_a=(int)f_a; s=f_a-i_a; if(s>=0.5){ i_a=i_a+1; } printf("%fを四捨五入すると%dです",f_a,i_a); return 0; } 他の作りかたがあれば、教えていただきたいのですが。IF文などの範囲でお願いします。

  • 10進数を2進数に変換したいのですが・・・

    こんばんは。 入力された10進数を2進数に変換するというプログラムを、一応作成することができたのですが、表示される結果が逆に表示されてしまいます。(例えば、4なら001) どのようにすれば、正しく表示することができるのでしょうか??ちなみにプログラムは #include<stdio.h> int main(void) { int num; printf("数字を入れてください。\n"); scanf("%d", &num); for(num = num ; num>1 ; num = num/2) printf("%d",num%2); printf("%d\n",num); return 0; } です。

  • Cプログラミング 初歩

    #include <stdio.h> int main (void){ double num; printf("実数を入力して下さい:"); scanf("%lf",&num); printf("あなたは%fと入力しましたね\n",num); return(0); } のプログラミングがコンパイル出来ません↓ printf("あなたは%fと入力しましたね\n",num); をprintf("%f\n",num);のようにすると上手くいくのですが、 どうしたらコンパイルできるか分かる人はいますか?