苏教版生物 长骨:一个vb的小问题?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/27 12:49:43
编写一个计算器,为什么小数点显示不了啊,整数可以显示,那位大哥帮忙看看,谢谢了!

Dim x!, N1!, N2! ' N1,N2分别代表输入的第一个数和第二个数
Dim StrN1$, StrN2$ ' StrN1,StrN2分别代表输入第一个数
'和第二个数的字符串形式
Dim FirstN As Boolean ' 判断是否是数字开头
Dim PointFlag As Boolean ' 判断是否已有小数点

Private Sub CmdN_Click(Index As Integer)
Select Case Index ' 用Index 作为判断分支的条件
Case 0 To 9 ' 如果Index是0到9,即数字
If FirstNum Then ' 输入为第一个数字的话
StrN1 = Str(Index) ' 实型转字符型
FirstN = False ' 初赋值标志为假
Else ' 输入不是第一个数字的话
StrN1 = StrN1 + Str(Index) ' 将输入的字符添加到
'原有字符串上
End If ' 结束 if 块
Lb1xs.Caption = StrN1 ' 将字符串结果显示到标签上
Case 10 ' 如果输入为小数点
If Not PointFlag Then ' 如果没有小数点
If FirstN Then ' 如果是第一个字符
StrN1 = "0." ' 显示为" 0." 不变
FirstN = False ' 初赋值标志为假
Else ' 否则
StrN1 = StrN1 + "." ' 字符串上加上小数点符号
End If ' 结束if块
Else ' 已有小数点
Exit Sub ' 则退出单击事件,也就是对单击事件不反应
End If
PointFlag = True ' 将小数点标志为真,即在输入串中有了小数点
Lb1xs.Caption = StrN1 ' 在显示屏上显示数字串

End Select

End Sub

Private Sub Form_Load()
N1 = 0: N2 = 0 ' 令 N1 和 N2 为 0
StrN1 = "": StrN2 = "" ' 令 StrN1 和 StrN2 为空串
FirstN = True ' 确定为数字开头
PointFlag = False ' 将 PointFlag 设为否,即没有小数点
End Sub '编写数字过程

If FirstNum Then ' 输入为第一个数字的话
该行中的变量FirstNum未定义
改为FirstN应能达到你的目的。
为了避免出现这种情况,建议:
工具-选项-编辑器-代码设置-勾选“要求变量声明”