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

    */

  • 相关阅读:
    ATM代码及遇到的问题总结
    暑假日报-52
    暑假日报-51
    暑假日报-50
    暑假日报-49
    暑假日报-48
    线段树优化建图(炸弹 + 选课)
    联考day2 C. 舟游
    联赛模拟测试5题解
    第19周作业
  • 原文地址:https://www.cnblogs.com/accumulater/p/6244645.html
Copyright © 2011-2022 走看看