如何将包含科学计数法数字的 varchar 转换为 SQL 服务器中的数字?

How do I convert a varchar containing a number in scientific notation to a numeric in SQL Server?

我使用函数进行了一些计算并得到以下值。我想将这个值除以 1000。

1.83673e+006

我想将值转换成数字。

当我尝试将其转换为数字时,它抛出

Error converting data type nvarchar to numeric.

是否可以将此值转换为数字?请帮我得到这个。

提前致谢

试一试

SELECT CONVERT(numeric(16,0), CAST(1.83673e+006 AS FLOAT))

在SQL服务器中,科学记数法(...+e...)仅用于浮点数据类型,不用于decimal/numeric数据类型。

因此,SQL服务器仅在转换为浮点数据类型(如floatreal)时识别此格式,而不是直接转换为[=14] =].

显然,没有什么能阻止您先将值转换为 float,然后再转换为 numeric:

SELECT CONVERT(numeric(19,4), CONVERT(float, '1.83673e+006'))

产量 1836730.0000.

试试这个

Declare @data varchar(100)='1.83673e+006'
SELECT @data=CAST(CAST( @data AS float) AS NUMERIC)/1000
SELECT @data Result


Result
1836.730000