Quantcast
Channel: VBForums - Visual Basic .NET
Viewing all articles
Browse latest Browse all 27311

[RESOLVED] Index was outside the bounds of the array.

$
0
0
I receive this message when running the program. Everything else works perfectly, but when I enter 50 in the OrderAmountInput, this error pops up at the "Coins = CInt(ChangeAmount(1))" location.

Option Explicit On
Option Strict On

Public Class ChangeCalc

Private Sub ChangeCalc_Load(sender As Object, e As EventArgs) Handles MyBase.Load

OrderAmountInput.Focus()

End Sub

Private Sub BtnExit_Click(sender As Object, e As EventArgs) Handles BtnExit.Click

Me.Close()

End Sub

Private Sub BtnCalculate_Click(sender As Object, e As EventArgs) Handles BtnCalculate.Click

Dim OrderTotal As Decimal = 0 'Declare Variable "OrderTotal" as a Decimal
Dim CustPayment As Decimal = 0
Dim ChangeDue As String
Dim ChangeAmount() As String
Dim Bills, Twenty, Ten, Five, One As Integer
Dim ShowTwenty(), ShowTen(), ShowFive(), ShowOne() As String
Dim Coins, Quarter, Dime, Nickel, Penny As Integer
Dim ShowQuarter(), ShowDime(), ShowNickel(), ShowPenny() As String

If Not IsNumeric(OrderAmountInput.Text) Then
MessageBox.Show("Please enter a numeric value for the Order Amount.")
OrderAmountInput.Clear()
OrderAmountInput.Focus()

ElseIf Not IsNumeric(CustomerPayment.Text) Then
MessageBox.Show("Please enter a numeric value for the Customer Payment.")
CustomerPayment.Clear()
CustomerPayment.Focus()

Else
OrderTotal = CDec(OrderAmountInput.Text)
CustPayment = CDec(CustomerPayment.Text)
End If

If (OrderTotal <= 0) Then
MessageBox.Show("Please enter a value greater than 0.")
OrderAmountInput.Clear()
OrderAmountInput.Focus()

ElseIf (OrderTotal > 1000) Then
MessageBox.Show("Please enter a value less than 1,000")
OrderAmountInput.Clear()
OrderAmountInput.Focus()

ElseIf (CustPayment <= 0) Then
MessageBox.Show("Please enter a value equal to or greater than the Order Total.")
CustomerPayment.Clear()
CustomerPayment.Focus()

ElseIf (CustPayment < OrderTotal) Then
MessageBox.Show("Please enter a value equal to or greater than the Order Total.")
CustomerPayment.Clear()
CustomerPayment.Focus()

Else
ChangeDue = CStr(CustPayment - OrderTotal)
ChangeDueOutput.Text() = CStr(ChangeDue)

ChangeAmount = Split(CStr(ChangeDue), ".")
Bills = CInt(ChangeAmount(0))
Coins = CInt(ChangeAmount(1))

Twenty = Bills \ 20
Bills = Bills Mod 20
ShowTwenty = Split(CStr(Twenty), ".")
Twenty = CInt(ShowTwenty(0))
MnyTwentiesReturned.Text = CStr(Twenty)

Ten = Bills \ 10
Bills = Bills Mod 10
ShowTen = Split(CStr(Ten), ".")
Ten = CInt(ShowTen(0))
MnyTensReturned.Text = CStr(Ten)

Five = Bills \ 5
Bills = Bills Mod 5
ShowFive = Split(CStr(Five), ".")
Five = CInt(ShowFive(0))
MnyFivesReturned.Text = CStr(Five)

One = Bills \ 1
Bills = Bills Mod 1
ShowOne = Split(CStr(One), ".")
One = CInt(ShowOne(0))
MnyOnesReturned.Text = CStr(One)

Quarter = CInt(Coins \ 25)
Coins = Coins Mod 25
ShowQuarter = Split(CStr(Quarter), ".")
Quarter = CInt(ShowQuarter(0))
MnyQuartersReturned.Text = CStr(Quarter)

Dime = CInt(Coins \ 10)
Coins = Coins Mod 10
ShowDime = Split(CStr(Dime), ".")
Dime = CInt(ShowDime(0))
MnyDimesReturned.Text = CStr(Dime)

Nickel = CInt(Coins \ 5)
Coins = Coins Mod 5
ShowNickel = Split(CStr(Nickel), ".")
Nickel = CInt(ShowNickel(0))
MnyNickelsReturned.Text = CStr(Nickel)

Penny = CInt(Coins / 1)
Coins = Coins Mod 1
ShowPenny = Split(CStr(Penny), ".")
Penny = CInt(ShowPenny(0))
MnyPenniesReturned.Text = CStr(Penny)

MessageBox.Show("Thank the customer for their patronage")

End If

End Sub

Private Sub BtnClear_Click(sender As Object, e As EventArgs) Handles BtnClear.Click
Me.OrderAmountInput.Clear()
Me.CustomerPayment.Clear()
Me.ChangeDueOutput.Clear()
Me.MnyDimesReturned.Clear()
Me.MnyFivesReturned.Clear()
Me.MnyNickelsReturned.Clear()
Me.MnyOnesReturned.Clear()
Me.MnyPenniesReturned.Clear()
Me.MnyQuartersReturned.Clear()
Me.MnyTensReturned.Clear()
Me.MnyTwentiesReturned.Clear()
End Sub

End Class"

I realize this is a divide by zero problem, but I can't find a solution for the life of me.

Viewing all articles
Browse latest Browse all 27311

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>