Fout met berekenen

Status
Niet open voor verdere reacties.

Tim066

Gebruiker
Lid geworden
27 mei 2010
Berichten
120
Ik heb een programmatje gemaakt om mee uit te rekenen hoeveel geld er in de kas zit. maar als ik van alles 1 invul hoort er 888,8 uit te komen maar er staat 888 hoe kan ik dit oplossen zodat die ,8 er ook bij komt te staan...?
 
Door met bijv. Decimals te rekenen.

PHP:
Dim Brian1 As Decimal = 788.3
Dim Brian2 As Decimal = 100.5
Dim Resultaat As Decimal = Brian1 + Brian2
MessageBox.Show(Resultaat.ToString())

Dat zou je een resultaat van 888,8 moeten geven ;)

Kegp7.png


En als je een getal krijgt die meer cijfers achter de komma heeft dan je wilt, neem je dat cijfer en gooi je die in de functie ''Decimal.Round'', welke je cijfer afrond op een aantal cijfers achter de komma, die je zelf kan specificeren.

Dus bijvoorbeeld dit:

PHP:
Dim Brian1 As Decimal = 788.3798987987
Dim Brian2 As Decimal = 100.5989809
Dim Resultaat As Decimal = Brian1 + Brian2
Resultaat = Decimal.Round(Resultaat, 2)
MessageBox.Show(Resultaat.ToString())

Hier rond hij de variabele ''Resultaat'' af op 2 cijfers achter de komma.

VariabeleNaam = Decimal.Round(VariabeleNaam, AantalCijfersAchterDeKomma)

Z0ro1.png
 
Laatst bewerkt:
dat werkt niet ik heb `t geprobeerd toe te passen maar t lukt me niet om t te laten werken...!
PHP:
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        lbl010t.Text = Val(txt010.Text) * Val("0.10")
        lbl020t.Text = Val(txt020.Text) * Val("0.20")
        lbl050t.Text = Val(txt050.Text) * Val("0.50")
        lbl100t.Text = Val(txt100.Text) * Val("1.00")
        lbl200t.Text = Val(txt200.Text) * Val("2.00")
        lbl500t.Text = Val(txt500.Text) * Val("5.00")
        lbl1000t.Text = Val(txt1000.Text) * Val("10.00")
        lbl2000t.Text = Val(txt2000.Text) * Val("20.00")
        lbl5000t.Text = Val(txt5000.Text) * Val("50.00")
        lbl10000t.Text = Val(txt10000.Text) * Val("100.00")
        lbl20000t.Text = Val(txt20000.Text) * Val("200.00")
        lbl50000t.Text = Val(txt50000.Text) * Val("500.00")
        lblTotaal.Text = "Totaal: " & Val(lbl010t.Text) + Val(lbl020t.Text) + Val(lbl050t.Text) + Val(lbl100t.Text) + Val(lbl200t.Text) + Val(lbl500t.Text) + Val(lbl1000t.Text) + Val(lbl2000t.Text) + Val(lbl5000t.Text) + Val(lbl10000t.Text) + Val(lbl20000t.Text) + Val(lbl50000t.Text)
    End Sub
End Class
dit is mijn hele code die ik erin heb staan.
lblnummert.text is het totale van het uitgerekende van bijv. 10 cent.
txtnummer.text is een textbox met het ingevulde aantal wat keerde bijv. 10 cent moet.
de rode cijfers dat zijn de geldwaarden.
en de onderste lange som dat is t totale waar 888,8 moet staan als ik overal 1 invul.

Hopelijk snap je t anders moet je het even zeggen dan stuur ik het project dat je het daar in kan zien.
 
Probeer dit eens =)

PHP:
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        lbl010t.Text = A(txt010, 0.1)
        lbl020t.Text = A(txt020, 0.2)
        lbl050t.Text = A(txt050, 0.5)
        lbl100t.Text = A(txt100, 1)
        lbl200t.Text = A(txt200, 2)
        lbl500t.Text = A(txt500, 5)
        lbl1000t.Text = A(txt1000, 10)
        lbl2000t.Text = A(txt2000, 20)
        lbl5000t.Text = A(txt5000, 50)
        lbl10000t.Text = A(txt10000, 100)
        lbl20000t.Text = A(txt20000, 200)
        lbl50000t.Text = A(txt50000, 500)
        lblTotaal.Text = "Totaal: " + CStr(CInt(lbl010t.Text) + CInt(lbl020t.Text) + CInt(lbl050t.Text) + CInt(lbl100t.Text) + CInt(lbl200t.Text) + CInt(lbl500t.Text) + CInt(lbl1000t.Text) + CInt(lbl2000t.Text) + CInt(lbl5000t.Text) + CInt(lbl10000t.Text) + CInt(lbl20000t.Text) + CInt(lbl50000t.Text))
    End Sub

    Private Function A(ByVal TekstBox As TextBox, ByVal KeerWat As Decimal) As String
        Return Convert.ToString(Decimal.Round(Convert.ToDecimal(TekstBox.Text) * KeerWat, 2))
    End Function
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan