SQL 小数点 四舍五入

方法1:

SELECT CAST('123.456'

as decimal) 将会得到 123(小数点后面的将会被省略掉)。

如果希望得到小数点后面的两位。

则需要把上面的改为

SELECT

CAST('123.456' as decimal(38, 2)) ===>123.46

说明1:

这里的decimal英文为: 小数,

十进制

decimal(38,2)

这里的38是这个小数的位数有多少位, 一般最大不超过38位,

所以写38是不会出错的!

如果:

SELECT CAST('123.456' as decimal(2, 2))

就会出错, 为什么呢,

因为这个123.456小数点后是3位值, 所以这个38这个位置最少是3!

说明2:

decimal后面的参数中的2是小数点后取几位, 是2就取两位,

是3就取三位! 并且是四舍五入后的结果!

说明3:

cast应该就是转换数值的意思了

自动四舍五入了!

方法2:

SELECT ROUND(123.75633, 2, 1),

ROUND(123.75633,

2)

上面的SQL得到的2个值是不一样的,前一个是:123.75000,后一个是:123.76000。

因为前者在进行四舍五入之前,小数点后已经被截取,保留了2位。

而后者则没有被截取,四舍五入时自然就会得到123.76000

ROUND

返回数字表达式并四舍五入为指定的长度或精度。

语法

ROUND ( numeric_e-xpression , length [ , function ]

)

参数

numeric_e-xpression

精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。

length

是 numeric_e-xpression 将要四舍五入的

posted on 2014-05-07 17:15  明天辉更好  阅读(575)  评论(0编辑  收藏  举报