Тип данных 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, он не будет в экспоненциальной форме.
этот подход, очевидно, быстрее, чем преобразование строки (это произойдет дважды).