舍去DECIMAL(14,3)至第三十进制数字在2008年SQL(Rounding down DEC

2019-10-17 08:49发布

我不得不舍去与类型的所有输入数据DECIMAL(14,3)其中有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操作者可我检查,在十进制数师的残留物是大于零?

Answer 1:

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

见:使用圆形截断



Answer 2:

使用该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 


文章来源: Rounding down DECIMAL(14,3) to third decimal digit in SQL 2008