SQL Server:将FLOAT转换为NVARCHAR,最高精度,无需科学记数法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server:将FLOAT转换为NVARCHAR,最高精度,无需科学记数法相关的知识,希望对你有一定的参考价值。
如果不使用科学记数法,我需要将FLOAT
转换为字符串,而不显示科学记数法,并捕获所有可能的精度。
例如,当我执行SELECT 1E0 / 1346E0
时,我得到以下结果:
这是SQL Server默认显示FLOAT
值的方式。
在这种情况下,它显示18位小数,这比STR
函数可以提供的多。
它也不会添加任何尾随零。
如果SQL Server Management Studio可以执行此操作,我是否也可以在我的代码中进行此转换?
我需要不惜一切代价避免科学记数法,即使小数点后面有20个前导零。长字符串不是问题。
不幸的是,即使是样式3,CONVERT
函数也不能提供我需要的功能
答案
试试format()
SELECT 1E0 / 1346E0,格式(1E0 / 1346E0,'N18')
另一答案
declare @float float = 0.000742942050520059
select cast(cast(@Float as decimal(38,35)) as varchar(200))
正如之前所指出的那样,format
也有效,虽然我不是它的忠实粉丝,因为它是一种重击CLR。但是对于一次性,这没关系。
以上是关于SQL Server:将FLOAT转换为NVARCHAR,最高精度,无需科学记数法的主要内容,如果未能解决你的问题,请参考以下文章
在没有科学计数法的 SQL Server 中将 float 转换为 varchar
如何在 SQL Server 2000/2005/2008 中使用 FLOAT 转换小数位数
怎么将sql server 语句中integer类型转换成string