我在表格中有列,我想要舍入到一些小数位。 哪个存储在其他表中。
实际上我的数据存储为8位小数,但根据用户的喜好,我需要显示小数位。
列数据类型是数字(19,8)
我有返回所有行的过程。所以那时我只想将我的列舍入到指定的十进制小数
想做类似
的事情declare @i int = 2
Begin
select cast (12533333.193 as numeric(38,@i))
end
如何实现这一目标? 请建议
答案 0 :(得分:1)
这是最简单的
在开始之前我想告诉它这只适用于float类型(是的!你需要将你的小数/数字转换成浮点数!)。语法方面,它也是最易读的!
select round(cast(65.456 as float),2)
(这将四舍五入到小数点后两位)
select round(cast(65.456 as float),1)
(这将舍入到小数点后1位)
select round(cast(65.456 as float),0)
(这将舍入到0位小数)
请参阅下面的快照
答案 1 :(得分:0)
答案 2 :(得分:0)
你可以在查询中向上舍入后转换为2位小数,
或在报告或系统中显示时
DECLARE @i int = 2
BEGIN
SELECT
cast(
ROUND(val,@i)
as decimal(10,2)
)
FROM mytable
END