zoukankan      html  css  js  c++  java
  • 根据进舍位或四舍五入来求值

    /*

    ***************************************

    Program ID: FUN_GetValueByRoundMode

    Purpose   : 根据进舍位或四舍五入来求值

    Author    : Jesse

    Date      : 2011.02.14

    ***************************************

    */

    Go

    --创建函数

    Create function dbo.FUN_GetValueByRoundMode

    (

        @Value decimal(18,6),    --需进行运算的值

        @Bit int,                --小数位数

        @RoundMode char(1))      --求值方式:-四舍五入、-舍去、-进位

    Returns decimal(18,6)

    As

    begin

        declare @Result decimal(18,6)

        set @Value=isnull(@Value,0)

      

        if @RoundMode='1'         --舍去

            Select @Result=Round(@Value,@Bit,1)

        else if @RoundMode='2'    --进位

            Begin

                if @Value>Round(@Value,@Bit,1)    --确保在有尾数的情况下才进位

                    Select @Result=Round(@Value,@Bit,1)+1.0/Power(10,@Bit)

                else

                    Select @Result=Round(@Value,@Bit,1)

            end

        else

            Select @Result=Round(@Value,@Bit)

     

        Return Isnull(@Result,0)

    end  

     

    --测试示例

    select dbo.FUN_GetValueByRoundMode(9.82458,3,'0')

    select dbo.FUN_GetValueByRoundMode(9.82458,3,'1')

    select dbo.FUN_GetValueByRoundMode(9.82458,3,'2')

     

    --运行结果

    /*

    9.825000

    9.824000

    9.825000

    */

  • 相关阅读:
    31天重构学习笔记9. 提取接口
    31天重构学习笔记4. 降低方法
    31天重构学习笔记8. 使用委派代替继承
    31天重构学习笔记11. 使用策略类
    31天重构学习笔记12. 分解依赖
    MyCat:第八章:MyCAT In Action中文版
    HDU 2041 超级楼梯
    CSU 1487 未覆盖顶点数量
    HDU 1712 ACboy needs your help
    HDU 2034 人见人爱AB
  • 原文地址:https://www.cnblogs.com/accumulater/p/6244645.html
Copyright © 2011-2022 走看看