Округление DECIMAL (14,3) до третьего десятичного знака в SQL 2008 - PullRequest
1 голос
/ 20 августа 2009

Я должен округлить все входящие данные с типом DECIMAL(14,3), который имеет 3 десятичных знака до последнего. I.e.:

100; 100.0; 100.00; 100.000 -> 100
100.2; 100.02; 100.20; 100.22 -> 100.xx

но

100.221 -> 100.22
100.229 -> 100.22

С помощью какого оператора SQL можно проверить, что остаток от деления в десятичной цифре больше нуля?

Ответы [ 2 ]

4 голосов
/ 21 августа 2009

Используя какой оператор SQL я могу проверить этот остаток от деления в десятичном виде цифра больше нуля?

Я не знаю точно, чего вы хотите достичь с этим, но если вы хотите рассчитать десятичный остаток, то вам нужен % (по модулю). Он обеспечивает целочисленный остаток после деления первого числового выражения на второе. Итак, вы можете сделать это

1) SELECT 100.229 % 1;
GO

дает 0.229 как результат.

2) SELECT (100.229 * 100) % 1;
GO

дает 0.900 как результат. Там у вас есть остаток от десятичного деления.

Но если вы хотите усечь, вы можете сделать так, как предложил Дэвид Б и использовать ROUND () для усечения:

SELECT ROUND(100.221, 2, 1); 
GO 
SELECT ROUND(100.229, 2, 1); 
GO
3 голосов
/ 20 августа 2009

http://msdn.microsoft.com/en-us/library/ms175003.aspx

См. Раздел: Использование округления для усечения

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