SQL 小数点 四舍五入
方法1:
SELECT CAST('123.456'
as decimal) 将会得到 123(小数点后面的将会被省略掉)。
如果希望得到小数点后面的两位。
则需要把上面的改为
SELECT
CAST('123.456' as decimal(38, 2)) ===>123.46
说明1:
这里的decimal英文为: 小数,
十进制
decimal(38,2)
这里的38是这个小数的位数有多少位, 一般最大不超过38位,
所以写38是不会出错的!
如果:
SELECT CAST('123.456' as decimal(2, 2))
就会出错, 为什么呢,
因为这个123.456小数点后是3位值, 所以这个38这个位置最少是3!
说明2:
decimal后面的参数中的2是小数点后取几位, 是2就取两位,
是3就取三位! 并且是四舍五入后的结果!
说明3:
cast应该就是转换数值的意思了
自动四舍五入了!
方法2:
SELECT ROUND(123.75633, 2, 1),
ROUND(123.75633,
2)
上面的SQL得到的2个值是不一样的,前一个是:123.75000,后一个是:123.76000。
因为前者在进行四舍五入之前,小数点后已经被截取,保留了2位。
而后者则没有被截取,四舍五入时自然就会得到123.76000
ROUND
返回数字表达式并四舍五入为指定的长度或精度。
语法
ROUND ( numeric_e-xpression , length [ , function ]
)
参数
numeric_e-xpression
精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。
length
是 numeric_e-xpression 将要四舍五入的