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.
