简单的除法答案,没有小数位

时间:2010-07-07 07:18:14

标签: vb6

我想创建这个简单的除法程序。但问题是除数不应该是小数位的答案,我如何把检查。指导将不胜感激。

 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

2 个答案:

答案 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