传进一个数值,根据要求对它进行不同情况下的处理,比如传进912.345
function GetNewVal(dim Tochange as double,mode as integer,num as integer) as string
dim strreturn as double
select case mode
case 0
变成912(小数点后都不要)

case 1
变成913(全进一位)
case 2
四舍五入,小数点后保留num个数字 return doublereturn

end function

解决方案 »

  1.   

    Math.Round 方法 返回具有指定精度、最接近指定值的数。
      

  2.   

    Math.Ceiling 方法
    返回大于或等于指定数字的最小整数。
      

  3.   

    MyNumber = Int(99.8)   ' Returns 99.
    MyNumber = Fix(99.8)   ' Returns 99.MyNumber = Int(-99.8)   ' Returns -100.
    MyNumber = Fix(-99.8)   ' Returns -99.MyNumber = Int(-99.2)   ' Returns -100.
    MyNumber = Fix(-99.2)   ' Returns -99.MyNumber = CInt(99.8)    ' Returns 100.
    MyNumber = CInt(-99.8)   ' Returns -100.
    MyNumber = CInt(-99.2)   ' Returns -99.MyNumber = CInt(Fix(99.8))   ' Returns 99.
    MyNumber = CInt(Int(99.8))   ' Returns 99.
    Math.Round(3.44, 1); //Returns 3.4.
    Math.Round(3.45, 1); //Returns 3.4.
    Math.Round(3.46, 1); //Returns 3.5.
      

  4.   

    系统都给你做好了
    int()就是取整数部分,等等
      

  5.   

    传进一个数值,根据要求对它进行不同情况下的处理,比如传进912.345
    function GetNewVal(dim Tochange as double,mode as integer,num as integer) as string
    dim strreturn as double
    select case mode
    case 0
               retrun  Math.Floor(Tochange) 
    case 1
    retrun  Math.Ceiling(Tochange) 
    case 2
    retrun  Math.Round(Tochange) 
    end function
      

  6.   

    用可选格式字符吧
    我刚刚在c#中帮你测试过,本来想用vb的,但不懂vb,你转化下
    在vb中我只测试了这一句
    textbox.Text = 3.235666.ToString("f3")
    结果返回3.236
    呵呵,因为这句我会写。写时还出现错误了,不罗嗦了,说说这个格式控制f
    f后面的3表示保留3位小数,如果你要求case0时没有小数,就写成tostring("f0")
    如果保留几位小数,就写f几,它自动会四舍五入。如传如的num=5写成
    string str="f"+num.tostring()
    strreturn.tostring(str)
    就可以了
    你先试试看,但是要记住要用于计算时要将其转化为double格式,因为它格式后是字符串。
      

  7.   

    yiyefuping(一叶浮萍) 的法俺都没听过
      

  8.   


    Tochanges=split(Tochange,".")
    inum=Cint(Tochanges(0))case 0
    result=inumcase 1
    result=inum+1case 2
    result=FormatNumber(Tochange,num)