lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  • 一、FORMAT(X,D)
  • 二、ROUND(X,D)
  • 三、TRUNCATE(X,D)
  • 四、CONVERT(V,T)

 

 

一、FORMAT(X,D)
format()函数会对小数部分进行四舍五入操作,
整数部分从右向左每3位一个逗号进行格式化输出。
如果查出的数据需要运算则不合适使用format(x,d)。
SELECT
FORMAT( 12345678.90, 2 ),
FORMAT( 123.456, 2 ),
FORMAT( 123, 2 ),
FORMAT( 0.1, 2 ),
FORMAT( 0.001, 2 )


二、ROUND(X,D)
ROUND(X,D)函数会对小数部分进行四舍五入操作。
X指要处理的数,D指保留几位小数。
需要注意的是:
D可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0。
ROUND(X)其实就是ROUND(X,0),也就是默认D为0
SELECT
ROUND( 12345678.90, 2 )a,
ROUND( 123.456, 2 )b,
ROUND( 123, 2 )c,
ROUND( 0.1, 2 )d,
ROUND( 156.789, 2 )e,
ROUND( 156.789, 1 )f,
ROUND( 156.789, 0 )g,
ROUND( 156.789, -1 )h,
ROUND( 156.789, -2 )i,
ROUND( 156.789, -3 )j,
ROUND( 156.789)k


三、TRUNCATE(X,D)
truncate()函数会将小数部分2位以后的值直接舍去
SELECT
TRUNCATE( 12345678.9123, 2 ),
TRUNCATE ( 123.456, 2 ),
TRUNCATE ( 123, 2 ),
TRUNCATE ( 0.1, 2 ),
TRUNCATE ( 0.001, 2 )


四、CONVERT(V,T)
convert()函数会对小数部分进行四舍五入操作。
decimal(10,2),表示最终得到的结果:
整数部分位数+小数部分位数<=10,小数部分位数2,如图示例第一条。
如果保留位数过大,可以使用decimal(13,2)、decimal(15,2)等等。
选择合适的保留位数,不然会出现示例2的情况
SELECT
CONVERT( 123456.789123456, DECIMAL ( 10, 2 ) ),
CONVERT( 123456789.123456, DECIMAL ( 10, 2 ) ),
CONVERT( 12345678912.3456, DECIMAL ( 13, 2 ) ),
CONVERT ( 123.456, DECIMAL ( 10, 2 ) ),
CONVERT ( 123, DECIMAL ( 10, 2 ) ),
CONVERT ( 0.1, DECIMAL ( 10, 2 ) ),
CONVERT ( 0.001, DECIMAL ( 10, 2 ) )

 

posted on 2022-07-19 17:16  白露~  阅读(1944)  评论(0编辑  收藏  举报