Avatar billede emilielund Nybegynder
21. december 2010 - 19:48 Der er 10 kommentarer og
1 løsning

lommeregner

hej jeg er i gang med at programmere en lommeregner til et skoleprojekt og jeg har faktisk lavet en lommeregner, MEEN selve "." (komma) funktionen fungere simpelthen ikke og jeg ved ikke hvordan jeg skal få det til at virke.
er der en som kan hjælpe ?
Avatar billede jakobdo Ekspert
21. december 2010 - 21:34 #1
Jeg tror måske du kunne starte med at beskrive hvad du oplever af fejl ?
Hvordan ser din kode ud, der hvor du prøver at arbejde med dit komma ?
Avatar billede emilielund Nybegynder
21. december 2010 - 22:34 #2
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
        TextBox1.Text = TextBox1.Text & "."
    End Sub
Avatar billede tjp Mester
21. december 2010 - 23:00 #3
Det var lidt kode... hvad er problemet så? :-)
Avatar billede emilielund Nybegynder
21. december 2010 - 23:07 #4
altså skal jeg prøve at sende hele min kode ? :) men selve problemet er at "." funktionen ikke virker.
Avatar billede tjp Mester
22. december 2010 - 01:10 #5
Hvad er det der ikke virker? Det gør den hos mig. Kan se at der er et problem med, at man kan sætte flere '.' i et tal, men den sætter dem da. :-)
Avatar billede emilielund Nybegynder
22. december 2010 - 01:31 #6
når jeg fx skriver: 5,5+4,5  så siger den at svaret er 9 .
og når jeg har tastet "." og derefter taster et nyt tal, laver den sig selv om til et "," (komma i stedet for punktum)
Avatar billede tjp Mester
22. december 2010 - 02:27 #7
Ok, så bliver du nok nødt til at flashe lidt mere kode.. fx af din + funktion.
Avatar billede emilielund Nybegynder
22. december 2010 - 05:39 #8
Sub showvalue(ByVal butt As Button)
        Form1.TextBox1.Text = Val(Form1.TextBox1.Text & butt.Text)
    End Sub

    Sub arithematic(ByVal butt As Button)
        Form1.Value1 = Val(Form1.TextBox1.Text)
        Form1.Oper = butt.Text
        Form1.TextBox1.Text = ""
    End Sub

    Sub calculate()
        Select Case Form1.Oper
            Case "+"
                Form1.TextBox1.Text = Form1.Value1 + Val(Form1.TextBox1.Text)
            Case "-"
                Form1.TextBox1.Text = Form1.Value1 - Val(Form1.TextBox1.Text)
            Case "*"
                Form1.TextBox1.Text = Form1.Value1 * Val(Form1.TextBox1.Text)
            Case "/"
                Form1.TextBox1.Text = Form1.Value1 / Val(Form1.TextBox1.Text)
        End Select
    End Sub
Public Class Form1
    Public Value1 As Double
    Public value2 As Double
    Public Oper As Char

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        showvalue(Button7)
    End Sub

    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        showvalue(Button8)
    End Sub

    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
        showvalue(Button9)
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        showvalue(Button4)
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        showvalue(Button5)
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        showvalue(Button6)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        showvalue(Button1)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        showvalue(Button2)
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        showvalue(Button3)
    End Sub

    Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
        showvalue(Button10)
    End Sub

    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
        arithematic(Button13)
    End Sub

    Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
        arithematic(Button14)
    End Sub

    Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
        arithematic(Button15)
    End Sub

    Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
        arithematic(Button11)
    End Sub

    Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
        Value2 = Val(TextBox1.Text)
        calculate()
        showhistory()
        value2 = 0
        SayIt()
    End Sub

    Private Sub ToolStripDropDownButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripDropDownButton1.Click
        Me.Width = 328
        ToolStripDropDownButton1.Text = "Historie Fra"
    End Sub

    Private Sub HistorieTilToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HistorieTilToolStripMenuItem.Click
        Me.Width = 579
        ToolStripDropDownButton1.Text = "Historie Til"
    End Sub

    Private Sub Button24_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button24.Click
        TextBox1.Text = Math.Sqrt(Val(TextBox1.Text))
    End Sub
    Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click
        TextBox1.Text = "0"
        Value1 = 0
        value2 = 0
        Oper = ""
    End Sub
    Private Sub Button22_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button22.Click
        TextBox1.Text = Val(TextBox1.Text) \ 10
    End Sub
    Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
        TextBox1.Text = (22 / 7)
    End Sub

    Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click
        TextBox1.Text = Val(TextBox1.Text * TextBox1.Text)
    End Sub

    Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
        TextBox1.Text = TextBox1.Text & "."
    End Sub
Avatar billede tjp Mester
26. december 2010 - 01:09 #9
Problemet skyldes at textbox benytter computerens talformat til at "rette" input med og funktionen Val understøtter kun '.' som decimaladskiller.

Prøv evt. at skifte dine Val ud med Double.Parse, fx ændr:
Val(Form1.TextBox1.Text & butt.Text)
til:
Double.Parse(Form1.TextBox1.Text & butt.Text)
Avatar billede tjp Mester
26. december 2010 - 01:22 #10
Dog bliver du nødt til at sikre at Double.Parse ikke får den tomme streng som input med fx:

If TextBox1.Text = "" Then
    TextBox1.Text = 0
End If
Avatar billede emilielund Nybegynder
28. juli 2011 - 17:03 #11
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester