ROUND
返回数字表达式并四舍五入为指定的长度或精度。语法
ROUND ( numeric_expression , length [ , function ] ) SELECT ROUND(123.9994, 3), ROUND(123.9995, 3) ,ROUND(123.9994, 3,1), ROUND(123.9995, 3,1) 
GO

解决方案 »

  1.   

    select cast(12.3456 as decimal(18,2))12.35
      

  2.   

    select convert(numeric(12,2),col) col from tb 
      

  3.   

    接点分,round行,但在查询分析器看到的是四位,cast,convert一样,只是语法形式不同
      

  4.   


    12.35  结果符合  补充   但是中间使用cast转换 对于海量数据 效率是否会有影响!
      

  5.   

    精确度已经是3位,只不过是此函数的返回与 numeric_expression 相同的类型。所以你看到是还是4位,你要是想只看到指定的位数,那用cast,convert转numeric(12,2) 或 decimal(18,2)
      

  6.   

    select cast(12.3456 as decimal(18,2))
    go
    select convert(numeric(18,2),12.3456)-------------------- 
    12.35(1 row(s) affected)                     
    -------------------- 
    12.35(1 row(s) affected)