+ teken VB.net

Status
Niet open voor verdere reacties.

stevendemunter

Gebruiker
Lid geworden
24 jul 2002
Berichten
704
Ik heb in VB.net een klein rekenmachientje gemaakt.
Het kan reeds, vermeningvuldigen, delen, aftrekken, procent bereken en resetten.
Maar optellen lukt niet
Ik heb ik mijn form twee tekstvakken voor getalA en getalB en een knop Bereken en een label resultaat.

Dus wanneer ik op de knop bereken klik voor vermenigvuldigen zit er de volgende code achter

resultaat.text= getalA.text * getalB.text



Maar wanneer ik het zelfde doe met het plusteken krijg ik ipv
5+5 = 10
5+5= 55

Hoe kan ik dit oplossen?
 
Geplaatst door stevendemunter
Maar wanneer ik het zelfde doe met het plusteken krijg ik ipv
5+5 = 10
5+5= 55

Hoe kan ik dit oplossen?
resultaat.text= Val(getalA.text) + Val( getalB.text)

Voor het vermenigvuldigen, zou het ook op die manier moeten. Want je moet een string numeriek maken voor een berekening, anders heb je met een samentrekking van strings te maken, dat blijk ook uit 5+ 5 =55. Je hebt dan in zo'n geval 2 strins met elkaar opgeteld i.p.v. numeriek.

Dennis.
 
Eigenlijk zou je alle invoer van een text-box eerst moeten trimmen alvorens een berekening te maken. Men kunt immers per abuis op de spatie balk drukken.
Voorbeeld: Men typ het cijfer 5 en daarachter staat er een spatie.
Als je deze string(dat is 5 en een spatie, ascii in decimaal is 32) naar numeriek om zet(en dat moet!), dan krijg de text-box de waarde 0(nul), en dit is natuurlijk niet de bedoeling.

Dus, even trimmen. Bijvoorbeeld voor getalA.text wordt het dan:
getalA.text = Trim(getalA.text)

getalA.text is nog steeds een string, je gaat het nu numeriek maken middels de statement Val(ue).

getalA.text = Val(getalA.text)

getalA.text bevat nu een numerieke waarde, en daarmee kun je pas berekeningen gaan uitvoeren.

Dennis.
 
Deponeer desnoods je code even hier, dan verander ik dat even voor jou.

Dennis.
 
Private Sub TxtInvoer_KeyPress(KeyAscii As Integer)
Dim intRekenVeld as Integer

'Geen cijfer?
If KeyAscii <= 47 Or KeyAscii >= 58 Then
'Accepteer de invoer niet!
KeyAscii = 0
End If

'Klaar met typen als je op de enter toets drukt!
If KeyAscii = 13 Then
'Ga hier je code schrijven!
intRekenVeld = cInt(TxtInvoer)
'Pas op met de waarde van het getal.
'Verander integer in long voor grote getallen en in double indien je met gebroken getallen werkt!
....
End If

End Sub

Groeten,

Alfredo Antaria

Ps,

Jammer dat inspringen van de text niet gaat.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan