web-dev-qa-db-ja.com

SQL Server2005でのSMALLMONEYデータ型の丸め

私はSQLServer 2005を使用しており、smallmoneyデータ型の丸めの問題を理解しようとしています。

たとえば、値1.2849を小数点以下2桁に四捨五入すると、1.28が生成されますが、1.29を生成するべきではありませんか?例えば9は1.285に切り上げ、5は1.29に切り上げます。

次に例を示します。

SELECT
    'CAST(1.2849 AS SMALLMONEY)' OPERATION, CAST(1.284948 AS SMALLMONEY) RESULT
UNION
SELECT
    'ROUND(CAST(1.2849 AS SMALLMONEY), 2)', ROUND(CAST(1.284948 AS SMALLMONEY), 2)
UNION
SELECT
    'ROUND(ROUND(CAST(1.2849 AS SMALLMONEY), 3), 2)', ROUND(ROUND(CAST(1.2849 AS SMALLMONEY), 3), 2)
1
GWR

小数点以下第3位だけを見ていると確信しています...そしてそれは4なので、1.28に切り捨てられます。

明確化-丸めている桁よりも1桁大きい数字に見えます...したがって、2番目に丸めているため、3番目に見えます。

4
JHFB