小数点转换,没有舍入到两位小数
我的变量是数据类型varchar
,所以我必须将其转换为数字。但是我的输出值是0.0012499987
,我希望输出为1.24
,即不对值进行舍入。
这是我的代码
Set @SQLQuery = @SQLQuery + 'CAST((ISNULL(CAST(DI.Coupon AS NUMERIC(18,4)),0) * 100) AS Varchar(50)) AS Coupon,
在这里,我必须乘以100,不要删除它; di.coupon
的类型为varchar
。记住它吧
我想要的结果值为varchar
。
请有人帮助我
示例输入/输出
0.013923 1.39
答案 0 :(得分:1)
最简单的方法是获取原始列的子字符串并将其转换为数字。然后它将删除剩余的数字。
在SQL Server中,LEFT(第4列)将执行您想要的操作。
但正如@HABO指出的那样,内置函数Round()将接受一个截断小数值的参数。
答案 1 :(得分:1)
您可以使用CAST
编辑:我添加了一个ISNULL
DECLARE @N
SET @N = '0.013923'
SELECT CAST(CAST(CAST(ISNULL (@N, 0) AS DECIMAL(38,18)) * 100 AS DECIMAL(18,2)) AS VARCHAR (50))
答案 2 :(得分:0)
我已经得到了答案。这可能对某些人有帮助
cast(left(('00122.45678')*100,instr(('00122.45678')* 100,'.','1')+3)as varchar) as stb
输出:
122.456
如果你想要2个小数而不是圆形,那么你可以添加+2而不是+3