• ベストアンサー

シスアドの過去問について

シスアドの過去問でどうしても理解できない箇所があります。 もし、解説頂ける方がいらっしゃいましたら宜しくお願い致します。 H10秋 問29改 --------------------------------  表計算ソフトを用いて経営分析を行うこととした。 分析は、1億のけたを五捨六入し、10億円単位で行うこととする。 五捨六入する計算式として正しいものを選べ。 このとき利用する整数部関数は、小数部分を取り除いた値を返す ものとし、元の値Aは1円単位で入っているものとする。 答え) 整数部(A/1000000000+0.4) -------------------------------- 解説には、 10億円単位にするためには、1000000000で割る。 さらに、小数点以下の値が0.6以上であれば一つ繰り上げる必要が あるため、+0.4となる。 となっております。 前半部の「10億円単位にするためには、1000000000で割る。」は 理解できるのですが、なぜ「+0.4」する必要があるのかが理解できません。 非常に単純な質問で恐縮ですが、ご教授いただける方お待ちしております。

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

  • ベストアンサー
回答No.2

ANo.1さんのおっしゃっていることが、正解です。なので、その詳細を少し書き並べてみようかと思います。 この問題の趣旨は、「整数部関数」の仕様が「ひどすぎる」ため、人間の側が、それに応じた処理をプログラムしてあげなければなりません。さぁ、どうすればいいですか?というものです。 15億円を「捨てる」処理については、こうなります。 1.15億円を10億で割る。得られる答えは「1.5」。 2.ここに0.4を足すと、得られる数字は「1.9」。 3.整数部関数は「小数部分を取り除いた値を返す」、つまり小数点以下を切り捨てる処理をするので、最終的に得られる数字は「1」。「切捨て」の完成です。 16億円を「入れる処理」(といいますか、繰り上げる処理)については、こうなります。 1.16億円を10億で割る。得られる答えは「1.6」。 2.ここに0.4を足すと、得られる数字は「2.0」。 3.整数部関数は「小数部分を取り除いた値を返す」、つまり小数点以下を切り捨てる処理をするので、最終的に得られる数字は「2」。「繰り上がり」の完成です。 捨てると入れるの処理は、このように行われます。ご自身で、14億円の場合と17億円の場合を実際に計算してみると、さらに理解が深まるかな、と存じます。

tuto1229
質問者

お礼

大変丁寧なご回答、ありがとうございます。 早速、14、17億で演習してみました。 14億円を「捨てる」処理については、 1.14億円を10億で割る。得られる答えは「1.4」。 2.ここに0.4を足すと、得られる数字は「1.8」。 3.整数部関数は「小数部分を取り除いた値を返す」、つまり小数点以下を切り捨てる処理をするので、最終的に得られる数字は「1」。 17億円を「入れる処理」については、 1.17億円を10億で割る。得られる答えは「1.7」。 2.ここに0.4を足すと、得られる数字は「2.1」。 3.整数部関数は「小数部分を取り除いた値を返す」、つまり小数点以下を切り捨てる処理をするので、最終的に得られる数字は「2」。 順を追って説明頂いたので、大変理解しやすかったです。 また、ぜひよろしくお願い致します。

その他の回答 (1)

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

(A/1000000000)が1.5999999の時と1.6のときを比べれば判ります。 0.4を加えて小数部切捨てで前者は1、後者は2となります。 つまり五捨六入ですね。

tuto1229
質問者

お礼

ご回答ありがとうございます。 1.5999999と1.6とで比較すると確かに、+0.4が必要なのが わかりますね。 またぜひよろしくお願い致します。

関連するQ&A