Private Sub Form_Load()
Dim a, b, c, d, x, y, e, f
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub Command1_Click()
a = Val(Text1.Text) '输整数部分
b = Val(Text2.Text) '输小数部分
c = Len(a)
d = Len(b)
For i = 1 To c
x = Mid(a, i, 1) * (2 ^ (c - i))
e = x + e
Next i
For j = 1 To d
y = Mid(b, j, 1) * 2 ^ (-j)
f = y + f
Label2.Caption = e + f
Next j
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii <> 48 And KeyAscii <> 49 Then
Print "输入数据错误~"
Text1.Text = ""
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii <> 48 And KeyAscii <> 49 Then
Print "输入数据错误~"
Text2.Text = ""
End If
End Sub
在实际运行中还有几个问题:
1.在Text1和Text2中,输入错误后并不能清空
2.小数部分左边的0是不能够去掉的,但是在这一句中b = Val(Text2.Text),会去掉左边的0,举个例子,00001和1在这个程序中计算的结果是一样的,都是0.5, 但实际结果相差很远.