Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

Decimals Not Going Through?

$
0
0
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
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. :)

Viewing all articles
Browse latest Browse all 51036

Trending Articles



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