Hey, I am making a calculator using Visual Studio 2012 (BASIC). For some reason, when a decimal value is entered into the textbox, it is not received. For example, If I wanted to add 10.5 + 2, it would return 107 as if there were no decimals. I tried 10.5 + 2.0 and it gives me 125... I have all the variables set to the double data type. This is my code
There are no errors (that would not make it build and run) in this code, but I just don't know where I messed up. Feel free to ask questions if you don't understand what I am asking.
Public Class Form1
'When ADD BUTTON IS CLICKED
Private Sub AddButton_Click(sender As Object, e As EventArgs) Handles AddButton.Click
If String.IsNullOrWhiteSpace(TextBox1.Text) Then
MessageBox.Show("Invalid Input into textbox!", "Alert!")
TextBox2.Clear()
ElseIf String.IsNullOrWhiteSpace(TextBox2.Text) Then
MessageBox.Show("Invalid Input into textbox!", "Alert!")
TextBox1.Clear()
Else
Dim total As Double = addNumbers(TextBox1.Text, TextBox2.Text)
total = total.ToString()
Label.Text = total
End If
End Sub
'ADD
Private Function addNumbers(ByVal num1 As String, ByVal num2 As String)
Dim nums1 As Double = System.Text.RegularExpressions.Regex.Replace(num1, "[^\d]", "")
Dim nums2 As Double = System.Text.RegularExpressions.Regex.Replace(num2, "[^\d]", "")
Return nums1 + nums2
End Function
'When SUBTRACTION BUTTON IS CLICKED
Private Sub SubButton_Click(sender As Object, e As EventArgs) Handles SubButton.Click
If String.IsNullOrWhiteSpace(TextBox1.Text) Then
MessageBox.Show("Invalid Input into textbox!", "Alert!")
TextBox2.Clear()
ElseIf String.IsNullOrWhiteSpace(TextBox2.Text) Then
MessageBox.Show("Invalid Input into textbox!", "Alert!")
TextBox1.Clear()
Else
Dim difference As Double = subNumbers(TextBox1.Text, TextBox2.Text)
Label.Text = difference.ToString()
End If
End Sub
'SUBTRACT
Private Function subNumbers(ByVal num1 As String, ByVal num2 As String)
Dim nums1 As Double = System.Text.RegularExpressions.Regex.Replace(num1, "[^\d]", "")
Dim nums2 As Double = System.Text.RegularExpressions.Regex.Replace(num2, "[^\d]", "")
Return nums1 - nums2
End Function
'When MULTIPLY BUTTON IS CLICKED
Private Sub MultiButton_Click(sender As Object, e As EventArgs) Handles MultiButton.Click
If String.IsNullOrWhiteSpace(TextBox1.Text) Then
MessageBox.Show("Invalid Input into textbox!", "Alert!")
TextBox2.Clear()
ElseIf String.IsNullOrWhiteSpace(TextBox2.Text) Then
MessageBox.Show("Invalid Input into textbox!", "Alert!")
TextBox1.Clear()
Else
Dim product As Double = multiNumbers(TextBox1.Text, TextBox2.Text)
Label.Text = product.ToString()
End If
End Sub
'MULTIPLY
Private Function multiNumbers(ByVal num1 As String, ByVal num2 As String)
Dim nums1 As Double = System.Text.RegularExpressions.Regex.Replace(num1, "[^\d]", "")
Dim nums2 As Double = System.Text.RegularExpressions.Regex.Replace(num2, "[^\d]", "")
Return nums1 * nums2
End Function
'When DIVIDE BUTTON IS CLICKED
Private Sub DivButton_Click(sender As Object, e As EventArgs) Handles DivButton.Click
If String.IsNullOrWhiteSpace(TextBox1.Text) Then
MessageBox.Show("Invalid Input into textbox!", "Alert!")
TextBox2.Clear()
ElseIf String.IsNullOrWhiteSpace(TextBox2.Text) Then
MessageBox.Show("Invalid Input into textbox!", "Alert!")
TextBox1.Clear()
Else
Dim quotient As Double = divNumbers(TextBox1.Text, TextBox2.Text)
Label.Text = quotient.ToString()
End If
End Sub
'DIVIDE
Private Function divNumbers(ByVal num1 As String, ByVal num2 As String)
Dim nums1 As Double = System.Text.RegularExpressions.Regex.Replace(num1, "[^\d]", "")
Dim nums2 As Double = System.Text.RegularExpressions.Regex.Replace(num2, "[^\d]", "")
Return nums1 / nums2
End Function
'POWER OF
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If String.IsNullOrWhiteSpace(TextBox1.Text) Then
MessageBox.Show("Invalid Input into textbox!", "Alert!")
TextBox2.Clear()
ElseIf String.IsNullOrWhiteSpace(TextBox2.Text) Then
MessageBox.Show("Invalid Input into textbox!", "Alert!")
TextBox1.Clear()
Else
Dim productPow As Double = powNumbers(TextBox1.Text, TextBox2.Text)
Label.Text = productPow.ToString()
End If
End Sub
'POWER OF
Private Function powNumbers(ByVal num1 As String, ByVal num2 As String)
Dim nums1 As Double = System.Text.RegularExpressions.Regex.Replace(num1, "[^\d]", "")
Dim nums2 As Double = System.Text.RegularExpressions.Regex.Replace(num2, "[^\d]", "")
Return nums1 ^ nums2
End Function
'CLEAR BUTTON
Private Sub ClearButton_Click(sender As Object, e As EventArgs) Handles ClearButton.Click
TextBox1.Clear()
TextBox2.Clear()
Label.Text = ""
End Sub
'SQR ROOT BUTTON
Private Sub sqrRoot_Click(sender As Object, e As EventArgs) Handles sqrRoot.Click
If String.IsNullOrWhiteSpace(TextBox1.Text) Then
MessageBox.Show("1. Set First Number Textbox Equal to 1 for an Average Square Root" & vbCrLf & "2. The First Number is multiplied by the Square Root of the Second Number!", "Alert!")
TextBox2.Clear()
ElseIf String.IsNullOrWhiteSpace(TextBox2.Text) Then
MessageBox.Show("1. Set First Number Textbox Equal to 1 for an Average Square Root" & vbCrLf & "2. The First Number is multiplied by the Square Root of the Second Number!", "Alert!")
TextBox1.Clear()
Else
Dim squareRoot As Double = sqrRootFunc(TextBox1.Text, TextBox2.Text)
Label.Text = squareRoot.ToString()
End If
End Sub
'SQR ROOT
Private Function sqrRootFunc(ByVal num1 As String, ByVal num2 As String)
Dim nums1 As Double = System.Text.RegularExpressions.Regex.Replace(num1, "[^\d]", "")
Dim nums2 As Double = System.Text.RegularExpressions.Regex.Replace(num2, "[^\d]", "")
Return nums1 * (nums2 ^ 0.5)
End Function
'PI
Private Sub PiButton_Click(sender As Object, e As EventArgs) Handles PiButton.Click
Dim pi As Double = 3.1415926535
If String.IsNullOrWhiteSpace(TextBox1.Text) Then
TextBox1.Text = pi.ToString()
ElseIf String.IsNullOrWhiteSpace(TextBox2.Text) Then
TextBox2.Text = pi.ToString
End If
End Sub
End Class
There are no errors (that would not make it build and run) in this code, but I just don't know where I messed up. Feel free to ask questions if you don't understand what I am asking.