注册 登录
编程论坛 VB6论坛

我是小白,刚刚试着编写了一段代码.请指正

微杨 发布于 2019-03-22 21:18, 2033 次点击
Private Sub 计算_Click()
Dim 单价, 数量, 折扣金额, 消费金额, 应付金额 As String
消费金额 = Val(单价) * Val(数量)
If 消费金额 > 200 Then
折扣金额 = Val(消费金额) * 0.1
应付金额 = Val(消费金额) - Val(折扣金额)
Else
消费金额 = 应付金额
End If
End Sub


上面这段代码运行没 有计算出应有的结果.没有任何反应.我不知道错在那里?有人能给讲解一下吗?'
4 回复
#2
yingshu2019-03-22 21:52
Dim 单价, 数量, 折扣金额, 消费金额, 应付金额 As String   '声明变体型浪费资源。建议:Dim 单价 as string, 数量 as string,  应付金额 As String
消费金额 = Val(单价) * Val(数量)  ’第一个错误,为什么计算结果不是你想要的结果,单价和数量没有赋值,当然不会有反应了
Else
消费金额 = 应付金额  '第二个错误,不超过200,没有折扣,应该是消费金额直接赋值给应付账款,两个反了
#3
ZHRXJR2019-03-23 16:12
几个问题
Dim 单价, 数量, 折扣金额, 消费金额, 应付金额 As String   
1、因为都是数字数据,在定义是必须采用是那种数字数据,不要定义维变体数据,也不要定义维字符串数据。而且每个变量都必须定义数据类型。
像这样   Dim 单价 As Single, 数量 As Integer, 折扣金额 As Single, 消费金额 As Single, 应付金额 As Single
2、在计算之前没有给需要的变量赋值,这样变量即就是定义了数据类型,不是 0 ,就是空字符串,因此  消费金额 = Val(单价) * Val(数量) 是没有计算结果的,当然下面的计算也就没有计算结果了。
应该是   单价 = 12.52    :数量 = 100,这样才能计算哟!
#4
微杨2019-03-24 13:44
回复 3楼 ZHRXJR
谢谢.是因为没有赋值的原因
#5
微杨2019-03-24 13:44
回复 2楼 yingshu
谢谢
1