SQL Server 2008,将浮点转换为字符串
我需要将浮点字段(sp.[Current])转换为字符串。查询的部分是:SQL Server 2008,将浮点转换为字符串,sql,sql-server,Sql,Sql Server,我需要将浮点字段(sp.[Current])转换为字符串。查询的部分是: SELECT cast(sp.CustID as varchar(10)) CustID, cast(sp.Year as varchar(4)) Year, convert(nvarchar(50), sp.[Current]) AS Potential, sp.[Current] as Potential1 但是转换后我得到了这个结果 我得到这个数字的指数表示法。如何改进它?您可
SELECT
cast(sp.CustID as varchar(10)) CustID,
cast(sp.Year as varchar(4)) Year,
convert(nvarchar(50), sp.[Current]) AS Potential,
sp.[Current] as Potential1
但是转换后我得到了这个结果
我得到这个数字的指数表示法。如何改进它?您可以像下面这样尝试
CONVERT(numeric(16,0), CAST([Current] AS FLOAT))
试试这个
DECLARE @val float = 2000000.890
select convert(nvarchar(50),CAST(@val AS numeric(16,4)))
如下图所示,您可以参考此链接
SELECT STR(float,25, 2)
祝你好运。你有没有检查文档中的
CONVERT
。有什么问题吗?CONVERT
中的文档解释了如何控制输出。不过,让客户端控制格式要好得多。SQL,这种语言在格式化方面不是很好。在受支持的SQL Server版本中,您可以使用该函数,但同样,客户端在格式化方面要高得多。为什么还要使用float
?它有一些用例,但是float
(和real
)是不精确的数据类型。如果它有效,您需要选择正确的解决方案。