有人可以解释为什么LEFT的结果不同吗?为:
Declare @f as float
set @f = 40456510.
select LEFT(cast(@f as float), LEN(4045.)), LEFT(404565., LEN(4045.))
我得到了:
|
------------
4.04 | 4045
是否存在导致此问题的默认演员表? Fiddle SQL
答案 0 :(得分:3)
当您在LEFT(...)
值上调用FLOAT
时,您将其转换为数字的字符串表示形式,因为它是一个字符串函数。例如,如果您将值转换为varchar
,那么您将看到输出结果:
SELECT CAST(CAST(@f as float) AS VARCHAR(100))
你得到:'4.04565e+007'
所以前4个字符是:'4.04'
答案 1 :(得分:0)
第一个是指数表示的左边4个字符。为什么我不知道。
您正在将字符串函数[Left()]应用于float变量。