直接上代码
首先明确:
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。 2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
3.CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作。
虽然说CAST不支持四舍五入,但是有的还是执行了四舍五入了:
select cast('12.239' as decimal(5,2))--12.24
反正,遇到四舍五入还是用Round吧
例子
--decimal(32,3) 这里的'3'是你要保留的位数 select cast('12.362222' as decimal(32,3))--》12.362 --round('数字','四舍五入后保留小数点后几位') select round(122.5255,2)--122.5300 --然后用cast('数字' as 目标类型(一共多长,小数点后保留多少位) ) --numeric基本等同于Decimal select cast(round(122.5255,2) as numeric(5,2))--这个就是将122.5300这个,保留全部是5,小数点后是2 122.53 select cast('12.3898989' as decimal(32,20))--》12.38989890000000000000 SELECT CAST('12.56' AS decimal(10,8))--==>12.56000000 --比如下面这个 12.56,decimal全长是要保持10,小数点后要保留8个 --这里最多是8, 因为12已经占去2位,小数点最多是8个 SELECT CAST('12.56' AS decimal(10,8))--12.56000000
SELECT CAST('12' AS int)-->12 SELECT CAST('12.0' AS int)-->报错,double类型的字符串不能转成int
SELECT (Round(cast('12.36' as decimal(32,2)) * cast('1.23' as decimal(32,2)),2))--》15.2000
" * "代表 +-*/