Тип данных SQL 'float' при выводе в формате XML вызывает нежелательный результат float
Вы можете попробовать просто: table1: имеет столбец типа 'float' вместо
SELECT column1 from Table1; дает значения, как показано в таблице. 
говорят, это возвращает 15.1
однако, если вы попытаетесь
Select column1 from Table1 
FOR XML PATH('Table1'), Root('SomeRoot'), TYPE  
возвращает: 1.510000000000000 e + 001
кто-нибудь видел это, и как это исправить? заранее спасибо:)
3 ответов
Это то, что вы получаете при работе с числами с плавающей запятой. Вы можете попробовать это, хотя:
SELECT CONVERT(varchar(100), CAST(column1 AS decimal(38,2)))
вам просто нужно будет настроить точность на десятичной в соответствии с вашими потребностями.
для решения этой проблемы нет необходимости преобразовывать значение float в строку.
Просто преобразуйте значение float в decimal или numeric тип, с той точностью, которую вы хотите.
SELECT CAST(column1 AS decimal(38,2))
или
SELECT CAST(column1 AS numeric(18,5))
когда номер будет проанализирован в XML Sql Server, он не будет в экспоненциальной форме.
этот подход, очевидно, быстрее, чем преобразование строки (это произойдет дважды).
