摘要:

     下文讲述使用round sql函数,对数值型数据进行舍入操作

实验环境:sqlserver 2008

转自:https://www.cnblogs.com/lairui1232000/p/9188286.html


最近接到用户需求,需对数值型数据,无论后面数据多少,直接进行舍入操作,左思右想,终于发现了round函数可以满足此操作。

  --------------------------------------------------

  round函数舍入特性介绍:

     round语法介绍:

   round(数据表达式,长度[,操作方式])

----------------------

     参数说明:

    数据表达式:

  接收一个tinyint、int、bigint、decimal、numeric、money、smallmoney、float、real

长度:

  此参数须为tinyint int smallint类型

  round函数舍入的精度

操作方式:

  此参数须为tinyint int smallint类型

  缺省值:为0,如果输入其它值,则将截断“数据表达式”

     ----------------------

返回值说明:

    tinyint返回int

int 返回int

bigint 返回bigint

decimal numberic 返回decimal numberic 

money smallmoney返回money

float real 返回float 

     -----------------------

<span style="color:red;">

注意事项:

     当"长度"为正数时,则将小数点后舍入的位数

         当"长度"为负数时,则将小数点前舍入的位数

  </span>

 -----------------------------------------------------

 round应用举例:

 SELECT ROUND(8989.3652, 2), --小数位后保留2位,四舍五入
  ROUND(8989.3652, -2),--小数位前舍入2位,四舍五入
  ---小数位全部舍入,四舍五入
  ROUND(8956.34, 0),ROUND(8956.65, 0),ROUND(8956.25, 0), 
  ---截断数据舍入位置后的数据
  ROUND(16081.83,0,-2),  ROUND(16081.83,0,1),  ROUND(16081.83,0,5),
  ROUND(16081.835,2,8),  ROUND(16081.836,-2,6),  ROUND(16081.83,-2,7)
  go
 
 ---例:sql取消四舍五入方法分享
 ---丢失小数位后两位,并不进行四舍五入操作
 select round(8989.999,2,9)