Losse getallen in random volgorde optellen

Status
Niet open voor verdere reacties.

Xazara

Nieuwe gebruiker
Lid geworden
9 jun 2009
Berichten
2
Beste helpers,

ik ben net begonnen met VB, we moeten er een project voor school mee doen.

Ik maak een programma waarbij je in een zelf gekozen volgorde iets kunt samenstellen. Hierbij horen natuurlijk prijzen. Deze prijzen moeten bij elkaar worden opgeteld.

Ik heb bij bijvoorbeeld de tomaat een prijs van 0,50. Deze moet dus wanneer ik erop klik worden opgeteld bij het totale bedrag tot dus ver.

Ik heb hiervoor:

Code:
If CmdPrijs.Caption = 0# Then CmdPrijs.Caption = 0# + 0.5
If CmdPrijs.Caption = 0.3 Then CmdPrijs.Caption = 0.3 + 0.5
If CmdPrijs.Caption = 0.6 Then CmdPrijs.Caption = 0.6 + 0.5
If CmdPrijs.Caption = 0.8 Then CmdPrijs.Caption = 0.8 + 0.5
If CmdPrijs.Caption = 0.9 Then CmdPrijs.Caption = 0.9 + 0.5
If CmdPrijs.Caption = 1.1 Then CmdPrijs.Caption = 1.1 + 0.5
If CmdPrijs.Caption = 1.2 Then CmdPrijs.Caption = 1.2 + 0.5
If CmdPrijs.Caption = 1.3 Then CmdPrijs.Caption = 1.3 + 0.5
If CmdPrijs.Caption = 1.4 Then CmdPrijs.Caption = 1.4 + 0.5
If CmdPrijs.Caption = 1.5 Then CmdPrijs.Caption = 1.5 + 0.5
If CmdPrijs.Caption = 1.6 Then CmdPrijs.Caption = 1.6 + 0.5
If CmdPrijs.Caption = 1.7 Then CmdPrijs.Caption = 1.7 + 0.5
If CmdPrijs.Caption = 1.8 Then CmdPrijs.Caption = 1.8 + 0.5
If CmdPrijs.Caption = 1.9 Then CmdPrijs.Caption = 1.9 + 0.5
If CmdPrijs.Caption = 2# Then CmdPrijs.Caption = 2# + 0.5
If CmdPrijs.Caption = 2.1 Then CmdPrijs.Caption = 2.1 + 0.5
If CmdPrijs.Caption = 2.2 Then CmdPrijs.Caption = 2.2 + 0.5
If CmdPrijs.Caption = 2.3 Then CmdPrijs.Caption = 2.3 + 0.5
If CmdPrijs.Caption = 2.4 Then CmdPrijs.Caption = 2.4 + 0.5
If CmdPrijs.Caption = 2.5 Then CmdPrijs.Caption = 2.5 + 0.5
If CmdPrijs.Caption = 2.6 Then CmdPrijs.Caption = 2# + 0.5
If CmdPrijs.Caption = 2.7 Then CmdPrijs.Caption = 2# + 0.5
If CmdPrijs.Caption = 2.8 Then CmdPrijs.Caption = 2# + 0.5
If CmdPrijs.Caption = 2.9 Then CmdPrijs.Caption = 2# + 0.5
If CmdPrijs.Caption = 3# Then CmdPrijs.Caption = 2# + 0.5
If CmdPrijs.Caption = 3.1 Then CmdPrijs.Caption = 2# + 0.5
If CmdPrijs.Caption = 3.2 Then CmdPrijs.Caption = 2# + 0.5
If CmdPrijs.Caption = 3.3 Then CmdPrijs.Caption = 2# + 0.5
If CmdPrijs.Caption = 3.4 Then CmdPrijs.Caption = 3.4 + 0.5

Alleen nu blijft dat ding door rekenen, want wanneer er dus 0 + 0,5 = 0,5 uitkomt, gaat ie door rekenen met 0,5 + 0,5 = 1 enzovoorts.

Mijn vraag is nu: Hoe kan ik ervoor zorgen dat het stopt na 1 berekening? Is daar een gemakkelijk iets voor?

Alvast bedankt!

Joost
 
Beste Xazara,

Zo zonder voorbeeldbestand is het een beetje moeilijk in te schatten, maar aan de hand van de geplaatste code zou ik zeggen precies andersom de check te laten uitvoeren. Dus van hoog naar laag, hierdoor komt de If regel van 0.5 dus eerder dan dat hij 0 + 0.5 gaat optellen. Hierdoor voorkom je dus dat hij daarna verder gaat rekenen.

Dus:

Code:
If CmdPrijs.Caption = 3.4 Then CmdPrijs.Caption = 3.4 + 0.5
........
........
........
........
If CmdPrijs.Caption = 0# Then CmdPrijs.Caption = 0# + 0.5

B.t.w. kan je niet, omdat je alleen maar 0.5 erbij optelt, beter de onderstaande code toepassen:

Code:
cmdPrijs.Caption = VBA.Strings.FormatNumber(cmdPrijs.Caption) + 0.5

Deze code zet de caption om in een nummer telt daar 0,5 bij op en zet de uitkomst weer als caption van de commandbutton.

Mvg. René
 
Bedankt voor de hulp!

Het klopt inderdaad, alles werkt nu! :D

Joost
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan