在遇到一些错误的动态SQL时,我遇到了以下无法在SQL Server中解释的行为,有人可以帮我理解原因吗?
declare @test as decimal(28,2) = 2568595.4
select SUBSTRING(CAST(ABS(@test)*1000 AS VARCHAR(100)),1,2)
返回“ 25”
declare @test as float = 2568595.4
select SUBSTRING(CAST(ABS(@test)*1000 AS VARCHAR(100)),1,2)
返回“ 2”。
如果您删除了substring()
:
select CAST(ABS(@test)*1000 AS VARCHAR(100))
--> 2.5686e+009
float
不精确的词通常用科学记数法表示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句