2010-11-16 4 views
5

können Sie versuchen einfach: tabelle1: hat einen column1 vom Typ ‚schweben‘ stattSQL ‚schweben‘ Datentyp, wenn der Ausgang als XML, verursacht unerwünschte float Ergebnis

SELECT column1 from Table1; gibt Werte wie in Tabelle ersichtlich.

Sagen Sie diesen 15,1

jedoch zurück, wenn Sie

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

kehrt versuchen: 1.510000000000000e + 001

Hat jemand gesehen, und wie wurde dieses Problem behoben? danke im voraus :)

+0

Welche Datenbank ist das? –

+0

mögliches Duplikat von [Warum können Dezimalzahlen nicht exakt in Binärzahlen dargestellt werden?] (Http://stackoverflow.com/questions/1089018/why-cant-decimal-numbers-be-representsed-exactly-in-binary) –

+2

Dana: Das ist kein Duplikat. Das OP hat ein Problem mit der Formatierung, nicht mit der Darstellung. – Gabe

Antwort

8

Dies ist, was Sie erhalten, wenn Sie mit Gleitkommazahlen arbeiten. Sie können dies aber versuchen:

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

Sie werden nur die Präzision auf dem Dezimalsystem einstellen müssen, um Ihre Bedürfnisse anzupassen.

+0

Ja, ich habe SQL Server 2008 verwendet –

2

Auch unter der Annahme, MSSQL, die str Funktion Ihre Bedürfnisse passen könnte (MSDN):

select str(column1, 3,1) 
Verwandte Themen