我必须舍入所有输入数据的类型DECIMAL(14,3)
,它有3个十进制数字到最后一个数字。即:在SQL 2008中将DECIMAL(14,3)向下舍入到第三个十进制数字
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操作,我可以检查,在十进制数师的残留物是大于零?
我必须舍入所有输入数据的类型DECIMAL(14,3)
,它有3个十进制数字到最后一个数字。即:在SQL 2008中将DECIMAL(14,3)向下舍入到第三个十进制数字
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操作,我可以检查,在十进制数师的残留物是大于零?
使用的SQL操作,我可以检查 该部门的残留十进制 数字是大于零?
我不知道你想达到什么,但如果你想要一种方法来计算小数点后,%
(模数)就是这样。它在将第一个数字表达式除以第二个数字表达式之后提供整数余数。所以,你可以做到这一点
1)SELECT 100.229 % 1;
GO
给出0.229
作为结果。
2)SELECT (100.229 * 100) % 1;
GO
给出0.900
作为结果。你有十进制除法的残留。
但是,如果你要截断,你可以做David B建议,并使用ROUND()截断:
SELECT ROUND(100.221, 2, 1); GO SELECT ROUND(100.229, 2, 1); GO