我有一个相当奇怪的问题。
由于从FLOAT
和CHAR
列的大型查询中获取一列,我将生成的FLOAT
转换为CHAR
,以便生成的查询的数据类型匹配。
对于FLOAT
专栏中的少数整数值,它将整数除以科学记数法,而这一数字正在丢失一个整数。
例
DECLARE @fl FLOAT
SET @fl = 1041931
SELECT CAST(ISNULL(@fl, '0') AS VARCHAR(20))
这是显示
1.04193+e006
扩展后的是1041930因此失去了最后一位数。
我错误地正确显示整数?带小数的FLOATS不会发生这种情况。
您可以尝试以下查询。
DECLARE @fl FLOAT
SET @fl = 1041931
SELECT CAST(CAST(ISNULL(@fl, '0') AS DECIMAL(10,0)) AS VARCHAR(10))