如何实现用VB编的软件显示的结果不是经四舍五入,如0.45678保留三位小数为0.456.

解决方案 »

  1.   

    aa=0.45678
    msgbox format(aa,"###0.000")
      

  2.   

    UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
      

  3.   

    我想楼主要的是截断的
    Private Sub Form_Load()
        Dim sgl1 As Single
        sgl1 = 0.45678
        Debug.Print Fix(sgl1 * 1000) / 1000
    End Sub
      

  4.   

    Dim a As Single
    a = 0.45678
    MsgBox Left(CStr(a), InStr(CStr(a), ".") + 3)
      

  5.   

    dim a as single,b as single
    a=0.45678
    b=a*1000
    msgbox format(int(b)/1000)
      

  6.   


    Private Sub Form_Load()
        Dim x As Single: x = 0.45678
        MsgBox FormatNumber(x - 0.0005, 3, vbTrue)
    End Sub
      

  7.   

    Private Sub Form_Load()
        Dim x As Single: x = 0.45678
        MsgBox FormatNumber(x - 0.0005, 3, vbTrue)
    End Sub一般都是这个方法
      

  8.   


    MsgBox Left(CStr(0.45678), 5)
      

  9.   

    不对了,美式规格会去掉前导 0:MsgBox Left(CStr(Format(0.45678, "0.#####")),5)
      

  10.   

    debug.print format(fix(0.45678*1000)/1000,"0.###")
      

  11.   

    Int、Fix 函数
          返回参数的整数部分。语法Int(number)Fix(number)必要的 number 参数是 Double 或任何有效的数值表达式。如果 number 包含 Null,则返回 Null。说明Int 和 Fix 都会删除 number 的小数部份而返回剩下的整数。Int 和 Fix 的不同之处在于,如果 number 为负数,则 Int 返回小于或等于 number 的第一个负整数,而 Fix 则会返回大于或等于 number 的第一个负整数。例如,Int 将 -8.4 转换成 -9,而 Fix 将 -8.4 转换成 -8。Fix(number) μèóú£oSgn(number) * Int(Abs(number))