- 締切済み
エクセルのROUND関数について
小数点以下を四捨五入して整数にするには,例えば ROUND(1.52,1) なら,2になると思うのですが, ROUND(1.52,01) としても2となります. 1としても0.1としても結果は必ず等しくなるのでしょうか? よろしくお願いします.
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- jo-zen
- ベストアンサー率42% (848/1995)
" では,ROUND(**,0.1)とROUND(**,0)は,等しくなると言っていいんですかね? " → 残念ながら違います。 例えば、被四捨五入数を 98.765 だとした場合 round(98.765,2)=98.77 round(98.765,1)=98.8 round(98.765,0)=99 となります。引数の2,1,0というのは小数点以下何桁まで表示するのかを表しているのです。なぜそうなのかというと、小数点以下(引数+1)桁目を四捨五入するからです。それが定義です。 なお、上で「引数(ひきすう)」と書いたのは、ここでは round(N , k) の k を表しています。
- jo-zen
- ベストアンサー率42% (848/1995)
補足の 「失礼.↓は次のことを書こうとしたのです. ROUND(1.52,1)としてもROUND(1.52,0.1)としてもROUND(1.52,0.00000001)としても1.5になるということですよね?」 ですが、ROUND(1.52,1)=1.5 ですが、ROUND(1.52,0.1)=2となりますよ。「桁数」が0.1でも0.9でも同じですが(0とみなされます)、1や1.9は1とみなされますので同じではありません。#3を参照してみてください。 なお、0.00000001という数字に意味はあるのですか?ROUND関数の桁数部は基本的に整数であることに留意してください。 念のために書きますと、小数の場合、丸め誤差等の為、数学的には正しくてもExcelでは正しく計算されない場合もありますので注意ください。この場合は大丈夫かと思いますが。
- jo-zen
- ベストアンサー率42% (848/1995)
更に補足説明すれば、例えば ある数 1 2 3 .456 桁数 -3 -2 -1 0 1 2 3 という感じですので、 ROUND(123.456,-0.9)=ROUND(123.456,0)=123 ROUND(123.456,-1.1)=ROUND(123.456,-1)=120 ROUND(123.456,-2)=100 となります。
- jo-zen
- ベストアンサー率42% (848/1995)
何か間違って理解されているようです。 ROUND(1.52,1)は1.5となります。 ROUND関数は、round(数値,桁数) で、数値を指定した桁数で四捨五入した値を返す関数です。桁数と言っても、小数点を挟んでのプラスマイナスです。 桁数ですから通常は整数のはずですが、小数を指定した場合はそれを超えない整数とみなされます。0.1でも0.9でも0とみなされ、ROUND(1.52,0.9)=ROUND(1.52,0.1)=ROUND(1.52,0)=2 となります。
お礼
>ROUND(1.52,1)は1.5となります。 失礼しました. それはただの間違いです. つまり,ROUND(1.52,1)としてもROUND(1.52,0.1)としても1.5にはなるということですね? ありがとうございます.
補足
失礼.↓は次のことを書こうとしたのです. ROUND(1.52,1)としてもROUND(1.52,0.1)としてもROUND(1.52,0.00000001)としても1.5になるということですよね?
- koko88okok
- ベストアンサー率58% (3839/6543)
Excelのヘルプには、ROUND関数について、次のように解説されています。 『桁数に正の数を指定すると、数値は小数点の右側 (小数点以下) で四捨五入され、小数点以下の桁数が桁数に等しくなります。』 『桁数に 0 を指定すると、数値は最も近い整数として四捨五入されます。』 『桁数に負の数を指定すると、数値は小数点の左側 (整数部分) の指定した桁 (1 の位を 0 とする) に四捨五入されます。』 「1」も「0.1」も「正の数」ですので、同じ結果が返されると思います。
お礼
なるほど.ありがとうございます. では,ROUND(**,0.1)とROUND(**,0)は,等しくなると言っていいんですかね? ちなみに**の整数部分は,高々2桁です.