您可以尝试简单地: table1:有一个类型为'float'的column1 而不是
SELECT column1 from Table1;
给出如表中所示的值。
假设这返回15.1
但是,如果你尝试
Select column1 from Table1
FOR XML PATH('Table1'), Root('SomeRoot'), TYPE
返回:1.510000000000000e + 001
有没有人见过这个,这是如何解决的? 提前谢谢:)
答案 0 :(得分:9)
这是使用浮点数时的结果。你可以试试这个:
SELECT CONVERT(varchar(100), CAST(column1 AS decimal(38,2)))
您只需要调整小数的精度以满足您的需求。
答案 1 :(得分:2)
同样假设MSSQL,str
函数可能符合您的需求(MSDN):
select str(column1, 3,1)
答案 2 :(得分:0)
没有必要将浮点值转换为字符串来解决此问题。
只需将浮点值转换为decimal
或numeric
类型,即可获得所需的精度。
SELECT CAST(column1 AS decimal(38,2))
或
SELECT CAST(column1 AS numeric(18,5))
当数字将由Sql Server以XML格式解析时,它不会呈指数形式。
这种方法明显比字符串转换更快(会发生两次)。