ROUNDDOWN関数について
4 件中 1 - 4 件目
ひまわり
2008-3-26 19:40 No.1206585637
差し引き計算の値を関数で切り捨てにすると計算結果に誤差が生じます。どうしたらよいでしょうか?
232.2 - 230.08 = 2.12
の2.12のセルを指定して少数点以下第位で切り捨てにすると 2.1199999 となります
ちなみに
232.22 - 230.082 = 2.12 では 2.12となり正常です
232.2 - 230.08 = 2.12
の2.12のセルを指定して少数点以下第位で切り捨てにすると 2.1199999 となります
ちなみに
232.22 - 230.082 = 2.12 では 2.12となり正常です
SO
2008-3-31 18:22 No.1207012937
計算式の結果ではなく、2.12と手入力したものをROUNDDOWN関数で少数第2位以下を切り捨てると、2.12になります。この現象はバグと言ってもいいかもしれません。
切り捨てる桁から左に見ていって、最初に出てきた1以上の数字が1や2の時に起こるようです。(たとえば計算式で計算した結果が2.2でも同様の現象が起こります)
対処方法の一つとして以下の方法があります。
一度計算式で計算した結果を文字化して、
また数字にもどすと良いと思います。
計算式例
=value(text(2.12の計算式があるセル番地,”0.0000”))
text関数の第2引数は、文字の表示形式を示しています。小数点以下は切り捨てる小数点の桁数より多ければ何桁でもよいです。整数部分は桁数が何桁であろうと1の位の0だけ指定しておけばよいと思います。
切り捨てる桁から左に見ていって、最初に出てきた1以上の数字が1や2の時に起こるようです。(たとえば計算式で計算した結果が2.2でも同様の現象が起こります)
対処方法の一つとして以下の方法があります。
一度計算式で計算した結果を文字化して、
また数字にもどすと良いと思います。
計算式例
=value(text(2.12の計算式があるセル番地,”0.0000”))
text関数の第2引数は、文字の表示形式を示しています。小数点以下は切り捨てる小数点の桁数より多ければ何桁でもよいです。整数部分は桁数が何桁であろうと1の位の0だけ指定しておけばよいと思います。
たけのこ
2008-4-18 14:23 No.1208553796
>>SO
そのやり方ですと、結局小数点以下4~6桁表示にすると、同じ誤差が生じ2.119999の様に表示されます。
関数はもともと完璧には出来ておりませんので、この誤差を回避するには、このROUNDDOWNを使わない事です。
[書式]-[セル]-[表示形式]-[数値]を選び
[小数点以下の桁数]項目に4桁~の数値を入力することにより、この誤差は解消できます。
この誤差はもともと入力されている左項と右項どちらも小数点以下2桁だから生じる関数の仕様から来る誤差だと思います。
そのやり方ですと、結局小数点以下4~6桁表示にすると、同じ誤差が生じ2.119999の様に表示されます。
関数はもともと完璧には出来ておりませんので、この誤差を回避するには、このROUNDDOWNを使わない事です。
[書式]-[セル]-[表示形式]-[数値]を選び
[小数点以下の桁数]項目に4桁~の数値を入力することにより、この誤差は解消できます。
この誤差はもともと入力されている左項と右項どちらも小数点以下2桁だから生じる関数の仕様から来る誤差だと思います。
たけのこ
2008-4-18 14:53 No.1208555631
もし関数で表現するなら以下はいかがでしょうか?
=ROUNDUP(ROUNDDOWN(2.12の計算式があるセル番地,3),2)
2桁目までの計算なのですから、3桁目以降は誤差が生じることは勿論でしょう。
なので以上の様にROUNDUPとネストさせてやれば、出来ます。3のところは3以上、2のところは
2以上です。3の方が常に大きい数値となるように入力してください。それじゃよろしく。
=ROUNDUP(ROUNDDOWN(2.12の計算式があるセル番地,3),2)
2桁目までの計算なのですから、3桁目以降は誤差が生じることは勿論でしょう。
なので以上の様にROUNDUPとネストさせてやれば、出来ます。3のところは3以上、2のところは
2以上です。3の方が常に大きい数値となるように入力してください。それじゃよろしく。
コメント
このトピックは閲覧専用です。書き込みはできません。