SQL十进制截断不舍入

时间:2013-09-04 20:51:21

标签: sql sql-server sql-server-2008

这是我写的sql但是在十进制之后寻找5位数而没有舍入。

Select convert(decimal(10,5),Cast(473 as float) / Cast(14322 as float))  --i get 0.03303
Select Cast(473 as float) / Cast(14322 as float) --i get 0.033026113671275

但我正在寻找0.03302。 十进制后五位数(03302),四舍五入。 第一个查询将其四舍五入为0.3303而不是0.03302

让我知道。

2 个答案:

答案 0 :(得分:2)

使用ROUND和可选的第三个参数截断:

Select convert(decimal(10,5),
    ROUND(Cast(473 as float) / Cast(14322 as float)
    ,5,1   // the 1 tells SQL to truncate instead of round
    ))

答案 1 :(得分:0)

SELECT CONVERT(DECIMAL(10,5), 473 / (14322 * 1.0) - 0.000005);