2010-11-16 22 views
5

Bạn có thể thử đơn giản: table1: có column1 của loại 'phao' thay vìSQL gõ 'phao' dữ liệu, khi đầu ra như XML, nguyên nhân kết quả phao không mong muốn

SELECT column1 from Table1; cho giá trị như đã thấy trong bảng.

nói này trả 15,1

Tuy nhiên, nếu bạn cố gắng

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

lợi nhuận: 1.510000000000000e + 001

Có ai nhìn thấy điều này, và làm thế nào, đây cố định? cảm ơn trước :)

+0

cơ sở dữ liệu gì thế này? –

+0

có thể trùng lặp của [Tại sao số thập phân không thể được biểu diễn chính xác trong nhị phân?] (Http://stackoverflow.com/questions/1089018/why-cant-decimal-numbers-be-represented-exactly-in-binary) –

+2

Dana: Đây không phải là một bản sao. OP có vấn đề với định dạng, không phải là biểu diễn. – Gabe

Trả lời

8

Đây là những gì bạn nhận được khi bạn làm việc với số dấu chấm động. Bạn có thể thử điều này mặc dù:

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

bạn sẽ chỉ cần điều chỉnh độ chính xác trên thập phân để phù hợp với nhu cầu của mình.

+0

Có, tôi đang sử dụng máy chủ sql 2008 –

2

Cũng giả sử MSSQL, các str chức năng có thể phù hợp với nhu cầu của bạn (MSDN):

select str(column1, 3,1) 
Các vấn đề liên quan