回 帖 发 新 帖 刷新版面

主题:单精度变量的显示问题

我在程序中定义了一个单精度数值型变量:dim A as single,但当A的结果显示在Text文本框上时,若果结果是0.325则显示 .325,前面的0没有,这是怎么回事,再有我想只保留小数点后面2位,我该如何定义A变量。老师们,帮一下忙吧,谢谢了!

回复列表 (共6个回复)

沙发

format("0.1234","#,##0.##")

板凳

[quote]format("0.1234","#,##0.##")[/quote]
不行呀老师,我用了Format,但运行时,数字小数点前还是没有0,如下面程序,a=1,b=3,c=1。

Dim a As Single
Dim b As Single
Dim c As Single
Dim q As Single
Dim gen As Single
Dim x1 As Single
Dim x2 As Single

Private Sub Command1_Click()
a = Val(InputBox("请输入a值:"))
b = Val(InputBox("请输入b值:"))
c = Val(InputBox("请输入c值:"))
End Sub

Private Sub Command2_Click()
If a <> 0 Then
q = -b / 2 * a
gen = b * b - 4 * a * c
   If gen >= 0 Then
      If gen > 0 Then
      x1 = q + Sqr(gen) / 2 * a
      x2 = q - Sqr(gen) / 2 * a
      Else
      x1 = q
      x2 = q
      End If
   Text1.Text = Str(Format(x1, "#,##0.##"))
   Text2.Text = Str(Format(x2, "#,##0.##"))
   Else
   r = Sqr(-gen) / 2 * a
   Text1.Text = Str(Format(q, "#,##0.##")) & "+" & Str(Format(r, "#,##0.##")) & "!"
   Text2.Text = Str(Format(q, "#,##0.##")) & "-" & Str(Format(r, "#,##0.##")) & "!"
   End If
Else
MsgBox "请注意a不能等于0!"
End If
End Sub

Private Sub Command3_Click()
a = 0
b = 0
c = 0
gen = 0
q = 0
r = 0
End
End Sub

3 楼

去掉那个画蛇添足的Str就可以了

4 楼

我改过了,是这里出现了错误,但又有了新的问题,当运行结果为整数时如8,不是显示8.00而是显示8.,不知为什么?

5 楼

把format("0.1234","#,##0.##")改为format("0.1234","#,##0.00")

6 楼

谢谢,这下彻底解决了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册