通过查询数据库,得到的值小数点后的位数很多,有十位左右。而我现在只想保留前三位,该怎么办?控件为TextBox

解决方案 »

  1.   

    用Format 函数比如你这个要求MyStr = Format(334.123456789123, "##0.000")   ' 返回 "334.123"。
      

  2.   

    工程-》部件-》选择“microsoft masked edit control 6.0(sp3)”.
    它与文本框(TEXT BOX)功能基本相似,但多了一个MASK属性,MASK属性常用的设定如下:
           #—限定仅能输入数字0~9;
           A— 限定输入为英文字符及数字;
           ?—限定仅能输入英文字符;
           .—限定小数点位置;
           :—限定时间分隔号;
           /—限定日期分隔号
        不需编写代码,只要在设计时将格式化文本框对象(MASKED EDIT)的MASK属性设计好所需格式即可。比如 #######.##可输入12.3或123456.78但不能输入字母或其他字符但你必须考虑你输入的数字的位数,例如,如果把mask属性设为###.##,那么就只可以输入123.45,而不能输入1234.56,所以,最好把位数设得足够多。这样,你不需要写一行程序,只需要设定masked edit控件的属性就可以达到你的目的了或者是
    text1.text=Format(val(text2.text), "#####.00")
    这样在TEXT1中显示的就是你要的那种格式的数据了。或是
    Option Explicit
    Dim decimaltag As BooleanPrivate Sub Form_Load()
       decimaltag = False
    End SubPrivate Sub Text1_Change()
       If InStr(1, Trim$(Text1.Text), ".") Then
          decimaltag = True
       End If
       text1.text=format$(trim$(text1.text),"0.00")
    End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
       If KeyAscii = 46 And decimaltag = False Then
          decimaltag = True  '控制小数点只能输入一次。
       ElseIf KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Then
          Exit Sub
       ElseIf KeyAscii <= 31 Then
          Exit Sub   '控制可接受退格键或删除键等。
       Else
          KeyAscii = 0
       End If
    End Sub
      

  3.   

    format
    要不自己用字符串函数