当转换为CHAR时,SQL Server在float字段中截断整数的值

问题描述 投票:1回答:1

我有一个相当奇怪的问题。

由于从FLOATCHAR列的大型查询中获取一列,我将生成的FLOAT转换为CHAR,以便生成的查询的数据类型匹配。

对于FLOAT专栏中的少数整数值,它将整数除以科学记数法,而这一数字正在丢失一个整数。

DECLARE @fl FLOAT
SET @fl = 1041931

SELECT CAST(ISNULL(@fl, '0') AS VARCHAR(20))

这是显示

1.04193+e006

扩展后的是1041930因此失去了最后一位数。

我错误地正确显示整数?带小数的FLOATS不会发生这种情况。

sql-server casting floating-point rounding
1个回答
0
投票

您可以尝试以下查询。

DECLARE @fl FLOAT
SET @fl = 1041931
SELECT CAST(CAST(ISNULL(@fl, '0') AS DECIMAL(10,0)) AS VARCHAR(10)) 
© www.soinside.com 2019 - 2024. All rights reserved.