sqlserver数据库 数据格式化
round 返回数字表达式并四舍五入为指定的长度或精度。
显示的界面上要求只保留到小数点后4位,发现round(表达式,4,1)可以截断小数点4位后的数字 如果写(round,4)表示对小数点后4位四舍五入,但不截断多的0
A. 使用 ROUND 和四舍五入的近似值
下例显示四舍五入和近似值。
|
语句 |
结果 |
SELECT ROUND(123.4545,2)
123.4500
SELECT ROUND(123.45,-2)
100.00
B. 使用 ROUND 截断
下例使用两个 SELECT 语句说明四舍五入和截断之间的区别。第一个语句四舍五入结果。第二个语句截断结果。
语句 |
结果 |
SELECT ROUND(150.75,0)
151.00
SELECT ROUND(150.75,1)
150.00
C.数据转换
Cast(round(555,2)?as?numeric(12,2)) total
D.数据转换
注意:当对数据进行转换时,如果不加 "as varchar(10)"进行再次转换,则数据的小数点保留将按照小数点位数最长的格式保存。
SELECT b.f_time as? sjcssj,a.avgvalue,(case a.pollutantcode
when '001' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10))
when '002' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10))
when '004' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10))
when '005' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10))
when '007' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10))
when '008' then cast(cast(a.avgvalue as numeric(10,0)) as varchar(10))
when '006' then cast(cast(a.avgvalue as numeric(10,1)) as varchar(10))
else cast(cast(a.avgvalue as numeric(10,3)) as varchar(10)) end) ItemValue,
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!