当我尝试将值从十进制转换为浮点数时,它们会以指数值显示
当我将数字转换为十进制值时,它们显示为.00小数, 但我只需要数字。
检查提及查询。
4.35468867990779E+17
43546886799090787.00
43546886799090787.00
4.35468867990908E+16
以上查询结果为
{{1}}
但我要求的结果如" 435468867990778789.89"。
答案 0 :(得分:1)
试试这个
select try_parse('43546886799090787.89' as numeric(35,2) using 'en-US')
答案 1 :(得分:1)
您可以尝试以下查询吗?。
您可能需要此
的案例陈述select CAST(CAST(43546886799090787.89 AS decimal) AS varchar)
--O/P -> 43546886799090788
如果要将值四舍五入为最接近的整数,请使用以下脚本。
{{1}}
如果您遇到任何问题,请查看脚本并告诉我。
答案 2 :(得分:1)
您可以使用以下
declare @testFloat decimal(38,2) = 435468867990778789.89
SELECT CONVERT(varchar, @testFloat)
OR
SELECT cast(@testFloat as varchar)
结果:435468867990778789.89
修改强>
根据评论:您可以执行以下操作
<强>解释强>
concat
只会在点后面只取两个字符。<强>查询强>
declare @testFloat numeric(38,6) = 435468867990778789.89656,
@string varchar(100)
set @string = cast(@testFloat as varchar)
select @string = substring(@string,0,charindex('.',@string,0))
+ '.'
+ substring(@string,charindex('.',@string,0)+1,2)
select @string
结果:435468867990778789.89
希望这会对你有所帮助