• ベストアンサー

数値計算の~

プログラムについて全くわからないので教えて下さい。 アドバイスでもいいのでお願いします! (1)FORTRANの関数MODや、Cの演算子%を使わないで「余り」を求める方法(プログラム)を教えてください。 (2)Nを金額(整数型で単位は円)とするとき、   (1) 100円未満を切り捨てる   (2) 10円未満を切り上げる   (3) 1000円未満を四捨五入する ためのプログラム(全部で3本)を教えてください。

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

  • ベストアンサー
  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.2

(1) int n = 10, x = 3; int amari = n - ((n / x) * x); (2) 1. int n = 123; int res = (n / 100) * 100; 2. int n = 123; int res = ((n / 10) + (n % 10 ? 1 : 0)) * 10; 3. int n = 1234; int res = ((n / 1000) + (n % 1000 > 500 ? 1 : 0)) * 1000; C です。こんなもんでどうでしょう?

ran-23
質問者

お礼

ありがとうございます。 ちょっとお聞きしたいのですが、 (2)の2のところで、式の意味は分かるのですが、『?』と『:』の意味は何ですか? あと、(2)の3の『>』の意味もよかったら教えてください。

その他の回答 (3)

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.4

>(2)の2のところで、式の意味は分かるのですが、『?』と『:』の意味は何ですか? C言語の 三項演算子 といって、  A ? B : C の A が真なら B の値、A が 偽 なら C の値をとるというものです。VB系なら iif 文と同じようなものです。ですから、  n % 10 ? 1 : 0 の場合、n を 10 で割った余りが 0 (偽)なら 0、余りが 0ではない(真)なら 1 の値を取ります。  n % 1000 > 500 ? 1 : 0 '>' は不等号記号です。n % 1000 が 500 より大きければ 1、500未満なら 0 の値を取ります。 ただ、この方法よりも #1 さんの回答の方がよいですね。それと、整数型で変数を宣言していることが前提で、#3さんのご指摘されていた 整数化の処理は省略しています。VB系や perl等、変数の型が不定の言語系では明示的にまるめないと期待通りの動作になりません。#蛇足ですが... ちなみに三項演算子は「見にくい(解りにくい)」とよく言われ、余り好まれないようです。#私は好きなんですけどね(汗。

ran-23
質問者

お礼

ありがとうございます。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

#1に既にご解答がありますが、コーディングでは (2)は整数を出す関数INTがあるとして(ほとんどの言語にあり),実例で説明すると、273や2890をnとしてください。n=273 a=100*int(n/100)等のコードとなります。 100*int(273/100) 273-->200 10*int((273+9)/10) 273-->280 1000*int((2890+500)/1000) 2890-->3000

ran-23
質問者

お礼

ありがとうございます。

回答No.1

使用する言語の指定が無いので考え方だけです。 (1)使用する変数型は整数として    X÷Y=Z    X-Y×Z=余り (2)の (1)は100で割って100倍してください。     (2)9を加えて10で割って10倍してください。     (3)500加えて1000で割って1000倍してください。

ran-23
質問者

お礼

ありがとうございます。

関連するQ&A

  • VB6 丸めるとは?

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

  • エクセルの関数について教えてください。

    例えば、 円単位で、「3,400」と「5,400」を足すと「8,800」。 これを別なシートで、千円未満四捨五入で、千円単位の計算をさせる場合、 「3」+「5」で「8」を表示させたいのですが、 実際には、千円未満まで計算した後で四捨五入をした「9」が表示されてしまいます。 そのシートだけを見ると、「3」+「5」=「9」になってしまいます。 どういう関数を使えばいいのでしょうか。よろしくご教示ください。

  • 四捨五入で計算された数字を、整数で返す関数を教えてください。

    エクセルで見積金額をだす時に、小数点以下非表示で計算すれば、100.4+100.9+100.4=301.7 302となります。 関数を使い小数点第1位四捨五入で、これを301にしたいのです。 小数点第一位を四捨五入して整数で返すと言うのでしょうか? (小数以下斬り捨てだと、300になります。INT関数がそうなのでしょうか?) すみません、関数がまだ良く分かりません。間違っていたり説明がまずかったなら、ごめんなさい。

  • 金額をあるセルにいれたら 5%計算で

    金額をあるセルにいれたら 5%計算で 100円単位四捨五入をして  なおかつ 例えば 570000円なら 5% で29000円 とできればと 思います。 半分の 金額 15000 14000円と 出したいのですが・・・ 問題がありまして 百円単位は だせないので こういう形になるのですが・・・ いい方法は ございますか?

  • Access2003で小数点第1位未満四捨五入

    Access2003で小数点第1位未満四捨五入の表示をするにはどうしたらいいのでしょうか?int関数を使用して平均点の四捨五入をしたのですが、整数エラーになります。Roundsも使ったり色々やったのですが、どうやら違うようなので、困っています。助けて下さ~い。

  • エクセルで数値の桁数を一定の法則で統一したい

    E列にA~D列のデータから計算された数値が並んでいます。 たとえば E1:9.9 E2:86.08695652 E3:212.8571429 E4:1158.13953488372 これらを E1:9.90 (整数1桁の場合は四捨五入して小数2桁まで)       1未満の数値も小数2桁で(例、0.96) E2:86.1 (整数2桁の場合は四捨五入して小数1桁まで) E3:213  (整数3桁の場合は四捨五入して小数カット) E4:1158 (整数4桁の場合は四捨五入して小数カット) 上記の法則で見やすく整理したいのです。 整数4桁が最大です。大量のデータをまとめて整理出来る方法は ないでしょうか?よろしくお願いします。

  • 四捨五入するときの関数は

    金額データで、74352を千円未満を四捨五入するときの、データ定義、使用関数を教え願いたい。 (結果は、74000としたい。)

  • Excel関数教えて

    85,512円→85,000円 73,296円→70,000円 ↑っというように 5千円単位を 5,000円以上は四捨五入ではな○5,000円で表示して4,999円未満は切り捨てする関数式って????

  • 値段(数値)の1の位を切り上げて10の位まで表示する関数は?

    よろしくおねがいいたします。 価格リストを仕事で作成している最中ですが、¥1115だったら¥1120に、¥956だったら¥960、¥2222なら¥2230と、一円台を切り上げて10円までの価格表を作成するように言われました。どんな関数を使ったらいいでしょうか。四捨五入や切り捨てなどの関数を調べても「小数点」を使ったものが例題に載っているので、整数でこれができないものかと頭を抱えています。どなたかご指導いただけませんでしょうか。よろしくおねがいいたします。

  • ビジネス基礎の計算

    こんにちは。 私は計算がとても苦手分野なのですが、なんとかテストのために頑張っているところです。 そこで少し分からない問題があったので質問させてください。 (1)$110は、日本円に換算するといくらになりますか。$1=83.60とします。(円未満四捨五入) 計算式・$110×83.60=9.196 上記のようなところまでは分かるのですが、円未満四捨五入の意味がまずよく分かっていません。そこで他の問題を参考に「9円」と書いたのですが、答えのみ不正解でした。どういうことでしょうか? (2)€18.000は日本円でいくらになりますか。€1=114.66とします。(円未満四捨五入) 計算式・€18.000×114.66=2.063.880 (2)も同様です。逆に日本円→外国通貨の計算はこうかな?と思って正解するのですが・・・。 分かりやすく教えてください。

専門家に質問してみよう