帮我看一下vb的if 函数

来源:百度知道 编辑:UC知道 时间:2024/05/24 15:30:17
Dim sngWeight As Single

Private Sub cmdCancle_Click()
txtMoney = ""
txtWeight = ""
End Sub

Private Sub cmdClose_Click()
Unload Me
End Sub

Private Sub cmdSure_Click()

sngWeight = Val(txtWeight)

If sngWeight < 0 Then
txtMoney = "请不要乱输!"
ElseIf sngWeight = 0 Then
txtMoney = "呵呵.. 我们不收您的钱!"
Else
If sngWeight <= 0.1 Then
txtMoney = 10
ElseIf 0.1 < sngWeight <= 10 Then
txtMoney = 30
Else
txtMoney = 30 + (sngWeight - 10)
End If
End If
End Sub

Private Sub Command1_Click()

End Sub

Private Sub Form_Load()

End Sub
为什么输入大于10的数还是30呢 ,如果把第一个30改为40,输入大于10的数就是40 请问这是哪里出问题了呀

错误在于你的“ ElseIf 0.1 < sngWeight <= 10 Then”这条语句中
只要你输入的sngWeight > 0.1 那么就会这样运算,因为0.1<sngWeight,所以这个表达式为真,所以0.1<sngWeight = 1,1<=10这个命题仍然成立,所以执行
txtMoney = 30
,这也就是你输入大于10的数总会输出30,呵呵,只要你输入的大于0.1,结果就只能是30.
修改一下:
ElseIf 0.1< sngWeight And sngWeight <= 10 Then
txtMoney = 30
这样基本就OK了