2010-11-16 13 views
5

Usted puede tratar simplemente: tabla1: tiene un column1 del tipo 'float' en lugar deSQL tipo de datos 'flotar', cuando la salida como XML, provoca resultado de flotación no deseado

SELECT column1 from Table1; da valores como se ve en la tabla.

decir esto vuelve 15.1

Sin embargo, si se intenta

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

devuelve: 1.510000000000000e + 001

Alguien ha visto esto, y cómo fue que esto esté arreglado? gracias de antemano :)

+0

Qué base de datos es esto? –

+0

posible duplicado de [¿Por qué los números decimales no se representan exactamente en binario?] (Http://stackoverflow.com/questions/1089018/why-cant-decimal-numbers-be-represented-excaly-in-binary) –

+2

Dana: Esto no es un duplicado. El OP tiene un problema con el formateo, no con la representación. – Gabe

Respuesta

8

Esto es lo que obtienes cuando trabajas con números flotantes. Puede intentar esto sin embargo:

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

solo tendrá que ajustar la precisión en el decimal para que se ajuste a sus necesidades.

+0

Sí, estaba usando el servidor sql 2008 –

2

también asumiendo MSSQL, la función str podría satisfacer sus necesidades (MSDN):

select str(column1, 3,1) 
Cuestiones relacionadas