如何将包含科学计数法数字的 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服务器仅在转换为浮点数据类型(如float
或real
)时识别此格式,而不是直接转换为[=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
我使用函数进行了一些计算并得到以下值。我想将这个值除以 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服务器仅在转换为浮点数据类型(如float
或real
)时识别此格式,而不是直接转换为[=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