【发布时间】:2016-02-18 10:00:23
【问题描述】:
我有以下代码
DECLARE @m FLOAT=213456789.55
DECLARE @sql VARCHAR(MAX)='INSERT INTO Test VALUES('+CONVERT(VARCHAR,@m,1)+')'
EXEC(@sql)
但结果是213456790 而不是213456789.55
当我尝试写 CONVERT(VARCHAR,213456789.55,1) 时,它会返回 213456789.55 而不是 213456790
我该如何解决这个问题?
编辑
像DECLARE @m DECIMAL(18,2)=213456789.55 一样将@m 声明为十进制解决了这个问题,但我想知道是否有另一种使用浮点数的解决方案。谢谢
【问题讨论】:
-
CONVERT(VARCHAR(100), @m)应该这样做。 -
试过没有成功!它不会改变任何东西
标签: sql sql-server tsql varcharmax