舍入sql server 2008 R2

时间:2013-10-21 20:43:07

标签: vb.net sql-server-2008-r2 rounding

我有这个查询

(case when a.item_no >= '77000' and a.item_no <='77099' then
    (op_drill + op_machine + op_ssd + op_freight + op_paint + ((actual_tooling * 1.2))) 
    else (op_drill + op_machine + op_ssd + ((op_drill + op_machine + op_ssd) *.27) + ((op_drill + op_machine + op_ssd + op_freight + (op_curforg *1.25) + ((op_drill + op_machine + op_ssd)*.27)) * .075)+
     op_freight + (op_curforg *1.25) + op_paint) 
      end)  as new_cost,

它返回10.1201575

在vb.net中,我可以运行此语句

 dblNewCost = Math.Round(dblNewCost, 2, MidpointRounding.AwayFromZero)

返回10.13

有没有办法复制这个是sql server。我尝试了圆(num,2),但没有正确显示

1 个答案:

答案 0 :(得分:1)

我认为你还有其他一些问题。 SQL Server ROUND()函数就像VB一样工作。使用Math.Round(10.1201575, 2, MidpointRounding.AwayFromZero)无法返回10.13。比较两边都要舍入的数字,以确保你比较苹果与苹果。