SQL Server:将FLOAT转换为NVARCHAR,最高精度,无需科学记数法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server:将FLOAT转换为NVARCHAR,最高精度,无需科学记数法相关的知识,希望对你有一定的参考价值。

如果不使用科学记数法,我需要将FLOAT转换为字符串,而不显示科学记数法,并捕获所有可能的精度。

例如,当我执行SELECT 1E0 / 1346E0时,我得到以下结果:

enter image description here

这是SQL Server默认显示FLOAT值的方式。 在这种情况下,它显示18位小数,这比STR函数可以提供的多。 它也不会添加任何尾随零。

如果SQL Server Management Studio可以执行此操作,我是否也可以在我的代码中进行此转换?

我需要不惜一切代价避免科学记数法,即使小数点后面有20个前导零。长字符串不是问题。 不幸的是,即使是样式3,CONVERT函数也不能提供我需要的功能

enter image description here

答案

试试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

在SQL2000中如何把字符串转换成float型?

将unix时间转换为mysql datetime,保留一秒的分数

sql server导入excel数据,字符串类型变成float