Sql中的小数点和保留位数

直接上代码

首先明确:

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
" * "代表 +-*/
原文地址:https://www.cnblogs.com/ZkbFighting/p/13453942.html