Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
Solved

# I how do make a basic cash register in visual basic?

Posted on 2008-10-10
Medium Priority
2,856 Views
I have designed it and now need to code it but find that it does not accept my functions for calculating the net price, vat , total incl vat and then rounding this off to two decimal places also ensuring it rejects a non numeric input on the net price text box, I have a calculate btn that runs runs the functions...please advice where I'm going wrong.

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim intTxtcost As Integer
Dim inttxtamount As Integer
Dim intvat As Integer
intTxtcost = CInt(TXTCOST.Text)
inttxtamount = CInt(TXTAMOUNT.Text)
intvat = intTxtcost * inttxtamount / 100 * 17.5
TXTVAT.Text = CStr(intvat)
TXTRESULT.Text = intvat + intTxtcost

End Sub
End Class

0
Question by:learn4life
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 3

LVL 37

Expert Comment

ID: 22686177
You have everything as integers, I would first suggest you use decimals instead.
And to validate a number, the quickest way would be like:
If IsNumeric(TXTCOST.Text) Then
intTxtcost = CInt(TXTCOST.Text)
End If

0

LVL 37

Accepted Solution

samtran0331 earned 2000 total points
ID: 22686191
also keep in mind the order of operation for math (I always remember it using "MiDAS" = mulitiply, then divide, then add, then subtract)

so:
intvat = intTxtcost * inttxtamount / 100 * 17.5

intTxtcost *inttxtamount and
100*17.5
will happen first
then those two operations will get divided...be sure that is what you want, else use parenthesis
0

LVL 37

Expert Comment

ID: 22686232
try:
``````            Dim decTxtcost As Decimal = 0.0
Dim dectxtamount As Decimal = 0.0
Dim decvat As Decimal = 0.0
If IsNumeric(TXTCOST.Text) = True Then
decTxtcost = CType(TXTCOST.Text, Decimal)
End If
If IsNumeric(TXTAMOUNT.Text) = True Then
dectxtamount = CType(TXTAMOUNT.Text, Decimal)
End If
decvat = decTxtcost * dectxtamount / 100 * 17.5
TXTVAT.Text = FormatNumber(decvat, 2)
TXTRESULT.Text = FormatNumber(decvat + decTxtcost, 2)
``````
0

Author Comment

ID: 22698915
Thanks for this..I haven't tried it yet but given your creds I am pretty sure it s what I need.Thanks again.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
###### Suggested Courses
Course of the Month8 days, 22 hours left to enroll