プロが教える店舗&オフィスのセキュリティ対策術

小数点以下を四捨五入して整数にするには,例えば

ROUND(1.52,1)

なら,2になると思うのですが,

ROUND(1.52,01)

としても2となります.
1としても0.1としても結果は必ず等しくなるのでしょうか?

よろしくお願いします.

A 回答 (5件)

" では,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 を表しています。
    • good
    • 0

補足の


「失礼.↓は次のことを書こうとしたのです.

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では正しく計算されない場合もありますので注意ください。この場合は大丈夫かと思いますが。
    • good
    • 0
この回答へのお礼

なるほど.ありがとうございます.

では,ROUND(**,0.1)とROUND(**,0)は,等しくなると言っていいんですかね?
ちなみに**の整数部分は,高々2桁です.

お礼日時:2008/03/11 00:25

更に補足説明すれば、例えば


ある数  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
となります。
    • good
    • 0

何か間違って理解されているようです。


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)としてもROUND(1.52,0.1)としてもROUND(1.52,0.00000001)としても1.5になるということですよね?

補足日時:2008/03/10 20:51
    • good
    • 0
この回答へのお礼

>ROUND(1.52,1)は1.5となります。

失礼しました.
それはただの間違いです.

つまり,ROUND(1.52,1)としてもROUND(1.52,0.1)としても1.5にはなるということですね?

ありがとうございます.

お礼日時:2008/03/10 20:49

Excelのヘルプには、ROUND関数について、次のように解説されています。



『桁数に正の数を指定すると、数値は小数点の右側 (小数点以下) で四捨五入され、小数点以下の桁数が桁数に等しくなります。』
『桁数に 0 を指定すると、数値は最も近い整数として四捨五入されます。』
『桁数に負の数を指定すると、数値は小数点の左側 (整数部分) の指定した桁 (1 の位を 0 とする) に四捨五入されます。』

「1」も「0.1」も「正の数」ですので、同じ結果が返されると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!