通常の「ROUND」関数は、< 0.5 の場合は切り捨て、>= 0.5 の場合は切り上げます。
0.5 を切り捨てる必要がありますが、それ以上は切り上げる必要があります。
10.4
は 10 である
必要があります 10.5 は 10 である必要があります
10.6 は 11 である必要があります
編集:これが私が思いついた解決策です
丸められる値が B1 で
、小数精度が A1 の場合 (0 = 小数点なし、1 = 小数点以下 1 桁など)
=IF(MOD(ABS(B1),(1/(10^A1)))<=0.5*(1/(10^A1)),ROUNDDOWN(B1,A1),ROUNDUP(B1,A1))
はABS()
、負の数で機能することを確認します。
は(1/(10^A1))
、精度 (Google の丸め関数の 2 番目の引数) が境界条件 ( 0.5
) を適切にスケーリングするようにします。
そして、これMOD()
が私の境界条件を実際に決定するものです。
編集2:
@Jayenのおかげでよりエレガントなソリューション
=ROUNDUP(B1 - sign(B1) * (10 ^ -A1) / 2, A1)