2010-11-16 54 views
5

您可以尝试简单: 表1:有 代替SQL“浮动”数据类型,当输出格式为XML,导致不想要的float结果

SELECT column1 from Table1;如表所见给出值类型“浮动”的列1。

说这话时返回15.1

但是,如果你尝试

Select column1 from Table1 
FOR XML PATH('Table1'), Root('SomeRoot'), TYPE 

回报:1.510000000000000e + 001

有没有人看到了这一点,而这怎么固定? 在此先感谢:)

+0

什么数据库是什么? – 2010-11-16 00:50:26

+0

可能重复的[为什么不能十进制数字完全用二进制表示?](http://stackoverflow.com/questions/1089018/why-cant-decimal-numbers-be-represented-exactly-in-binary) – 2010-11-16 00:51:47

+2

达纳:这不是重复的。 OP有一个格式问题,而不是表示。 – Gabe 2010-11-16 00:54:06

回答

8

这是您在处理浮点数时所得到的结果。你可以试试这个虽然:

SELECT CONVERT(varchar(100), CAST(column1 AS decimal(38,2))) 

你只需要调整小数的精度,以满足您的需求。

+0

是的,我正在使用SQL Server 2008 – 2010-11-16 15:36:46

2

而且假设MSSQL中,str功能可能适合您的需要(MSDN):

select str(column1, 3,1) 
相关问题