数据库中保留两位小数

引入:

         本人菜鸟,今天遇到一个问题,把数据库中的一列值保留两位小数查出来;

    在网上搜索了很多关于数据库中保留两位小数的文章,可惜总是不能实现,后来自己总结了下,

    才发现原来很简单,是自己没有理解够;

    在这之前先介绍下几个函数:

1:round()这是四舍五入函数,用于把数值字段舍入为指定的小数位数。

    例如:   SELECT round(column_name,decimals) FROM table_name;

   网上说这个函数可以保留 四舍五入两位小数,可是我发现SELECT ROUND(19.434,2)出来的是19.430而不是19.43,

   可能是由于不能数据库的关系,竟然讲到这个函数,我就对这个函数解释下总结了下网上一些博客对它的了解

   round 有两个重载,一个是两个参数,一个是三个参数:

   1.带有两个参数.每二个参数是小数点的左边第几位或右边第几位,分别用正负表示.左边为负,右边为负.为四舍五入.

    SELECT round(567.45676,-1)  570.00000(-1 表示四舍五入到右边第1位,其中,个位为第0位,四舍五入后舍弃的部分显示为0)

    SELECT round(567.45676,2)  567.46000

    SELECT round(20,-3)           0

   2.带三个参数.第二个参数同上.第三个参数有两种可能,一种是取0为四舍五入.另一种是正负值,则为舍去

    SELECT  round(567.45676,2,0)  567.46000(跟两个参数意义的结果,可以把两个参数的当为三位参数的特例为第三参数0)

    SELECT  round(567.45676,2,3)   567.45000(第三个参数不为0,所以为舍去,舍弃两位以后的数字,变为567.45舍弃部位为0所以是567.45000)

    SELECT  round(567.45676,2,3)   567.45000

 2: cast(value as type)函数,其实要保留两位小数,只需要把用SELECT CAST(19.4667 AS decimal(9,2))就可以这样出来是19.47要是不想四舍五入的话,

    可以 先用round函数处理下SELECT cast(round(19.4667,2,3) as decimal(9,2)) 19.46当round函数第三个参数不为0就可以;

 3:convert(type,value)函数拥有和cast一样的功能SELECT convert( decimal(9,2),round(19.4667,2,3) ) 19.46

posted on 2012-07-13 23:04  C#+sql  阅读(8177)  评论(0编辑  收藏  举报