sql значение округления - PullRequest
       1

sql значение округления

2 голосов
/ 03 апреля 2010

Мне удалось округлить мое значение до одного десятичного знака, но я хотел бы обрезать множество конечных нулей. Например, это:

ROUND(SUM(Duration),1)

... в итоге дает мне:

16.9000000000000000

как мне обрезать все эти конечные нули.

MSSQL

Ответы [ 2 ]

3 голосов
/ 03 апреля 2010

Функция round округляет число, но оставляет тип данных неизменным:

ROUND(3.14,1) --> 3.10

Приводя число к numeric(x,1), вы округляете его и меняете его тип данных с точностью до одной цифры:

CAST(3.14 as numeric(6,1)) --> 3.1

По вашему запросу такое приведение может выглядеть так:

select cast(sum(duration) as numeric(6,1))

Но возможный формат отображения зависит от клиента. SQL Server Management Studio будет отображать numeric(x,1) с одной цифрой за точкой, но она может отображаться другим способом. Форматирование числа лучше всего делать на стороне клиента, вне SQL.

2 голосов
/ 03 апреля 2010

Использование:

CONVERT(Decimal(9, 1), ROUND(SUM(duration), 1))

Второй параметр типа данных DECIMAL - это точность - 1 даст вам одну цифру после десятичной точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...