我想创建这个简单的除法程序。但问题是除数不应该是小数位的答案,我如何把检查。指导将不胜感激。
Option Explicit
Dim fiCScore As Integer
Dim fiWScore As Integer
Dim fsUsername As String
Dim fiMax1 As Integer
Dim fiMax2 As Integer
Dim liWans As Integer
Private Sub Form_Load()
lstCorrect.Clear
lstWrong.Clear
fiCScore = 0
fiWScore = 0
Randomize
End Sub
Private Sub cmdAskQuestion_Click()
Ask_Question
End Sub
Public Sub Ask_Question()
Dim liOperand1 As Integer
Dim liOperand2 As Integer
Dim liResult As Integer
Dim fbAnswer As Boolean
Dim liEqua1 As Integer
Dim liEqua2 As Integer
Dim lsSign As String
' Number Generation '
fiMax1 = 20
fiMax2 = 20
liEqua1 = Int(fiMax1 * Rnd) + 1
liEqua2 = Int(fiMax2 * Rnd) + 1
liOperand1 = liEqua1
liOperand2 = liEqua2
' Sign Option Select '
'
' Division '
If optDivide = True Then
lsSign = " / "
If liEqua1 < liEqua2 Then
liOperand1 = liEqua2
liOperand2 = liEqua1
End If
'**Problem Point**
liResult = liOperand1 / liOperand2 'liOperand1 / liOperand2 should not be such that answer (liResult) is in decimal places
End If
QuestionAsk:
liWans = Val(InputBox("What is " & liOperand1 & lsSign & _
liOperand2 & " ?"))
End_Time
' If Wans_Validate = False Then
'
' MsgBox "Please enter numbers only.", vbCritical, "ERROR" '
' GoTo QuestionAsk
'
' End If
'
' Answer Checking Correct or Wrong
'
If liWans = liResult Then
MsgBox ("Correct Answer!")
fbAnswer = True
Else
MsgBox ("Incorrect Answer! " _
& liOperand1 & lsSign & liOperand2 & " = " & liResult)
End If
答案 0 :(得分:0)
如果我理解正确,您只想返回答案的整数部分(商)。为此,您可以使用'\'而不是'/'。
Dim k As Integer
k = 23 \ 5 ' sets k to 4.
答案 1 :(得分:0)
建议1(避免隐式转换):
If CDbl(liResult) = CDbl(liOperand1 / liOperand2) Then
MsgBox "result is an integer"
Else
MsgBox "result is not an integer"
End If
建议2(根据@Ryan的回答):
If (liOperand1 / liOperand2) = (liOperand1 \ liOperand2) Then
MsgBox "result is an integer"
Else
MsgBox "result is not an integer"
End If