zoukankan      html  css  js  c++  java
  • SQL函数之四舍五入(转)

    关键字: sql四舍五入
    问题1:
    SELECT CAST('123.456' as decimal) 将会得到 123(小数点后面的将会被省略掉)。
    如果希望得到小数点后面的两位。
    则需要把上面的改为
    SELECT CAST('123.456' as decimal(38, 2)) ===>123.46
    自动四舍五入了!

    问题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 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_e-xpression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_e-xpression 则按 length 所指定的在小数点的左边四舍五入。

    function

    是要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_e-xpression 将四舍五入。当指定 0 以外的值时,将截断 numeric_e-xpression。

    返回类型
    返回与 numeric_e-xpression 相同的类型。

    注释
    ROUND 始终返回一个值。如果 length 是负数且大于小数点前的数字个数,ROUND 将返回 0。

    示例 结果
    ROUND(748.58, -4) 0


    当 length 是负数时,无论什么数据类型,ROUND 都将返回一个四舍五入的 numeric_e-xpression。

    示例 结果
    ROUND(748.58, -1) 750.00
    ROUND(748.58, -2) 700.00
    ROUND(748.58, -3) 1000.00


    示例
    A. 使用 ROUND 和估计值
    下例显示两个表达式,说明使用 ROUND 函数且最后一个数字始终是估计值。

    Select ROUND(123.9994, 3), ROUND(123.9995, 3)
    GO

    下面是结果集:

    ----------- -----------
    123.9990    124.0000  

    B. 使用 ROUND 和四舍五入的近似值
    下例显示四舍五入和近似值。

    语句 结果
    Select ROUND(123.4545, 2)
    123.4500

    Select ROUND(123.45, -2)
    100.00

    C. 使用 ROUND 截断
    下例使用两个 Select 语句说明四舍五入和截断之间的区别。第一个语句四舍五入结果。第二个语句截断结果。

    语句 结果
    Select ROUND(150.75, 0)
    151.00

    Select ROUND(150.75, 0, 1)
    150.00
  • 相关阅读:
    HDU 1058 Humble Numbers
    HDU 1421 搬寝室
    HDU 1176 免费馅饼
    七种排序算法的实现和总结
    算法纲要
    UVa401 回文词
    UVa 10361 Automatic Poetry
    UVa 537 Artificial Intelligence?
    UVa 409 Excuses, Excuses!
    UVa 10878 Decode the tape
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/1511991.html
Copyright © 2011-2022 走看看