login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Korting berekenen (Opgelost)

Offline GroundZero - 05/03/2012 15:43
Avatar van GroundZeroLid Beste,

kan iemand mij vertellen hoe ik op een juiste manier mijn korting kan berekenen?

er zijn twee keuzen mogelijkheden.

1. Je kan kiezen voor een x-percentage korting
2. Je kan kiezen om één persoon gratis mee te nemen.

Ik heb hulp nodig bij optie 1, als deze lukt dan lukt optie 2 zelf ook wel haha.

Mijn script tot nu toe:

  1. function calculate(){
  2. // als er gekozen is voor een korting van een x percentage
  3. if(document.getElementById('optie1').checked=true)
  4. {
  5. var percentage = document.getElementById('kortingpercentage').value;
  6. var totaalprijs = <?=$totaal?>;
  7.  
  8. // korting er af rekenen en in een alert weergeven
  9. }
  10.  
  11. // als er gekozen is om een persoon gratis te laten gaan
  12. if(document.getElementById('optie2').checked=true)
  13. {
  14.  
  15. }
  16. }


Mijn probleem is het volgende.

De korting varieert per "dienst". Soms is het dus 5% korting, maar soms is het 25% korting.

Ik kan dus niet zeggen (ben niet goed met javascript dus niet lachen lol)

totaalprijs / 1.1 + percentage

waardoor de variabele percentage eigenlijk zegt:

120 / 1.15

wanneer de korting 5% zou zijn. In dit geval werkt het, maar wat als de korting 15 procent zou zijn?

Dan zet hij er neer

120 / 1.115

en dus klopt de som niet meer 

Hopelijk kan iemand mij verlossen van dit probleem ;)

6 antwoorden

Gesponsorde links
Offline vinTage - 05/03/2012 16:17
Avatar van vinTage Nieuw lid Doe eens:
parseFloat(totaalprijs / 1.1 + percentage)
Offline GroundZero - 05/03/2012 16:17 (laatste wijziging 05/03/2012 16:19)
Avatar van GroundZero Lid Klopt, heb ik nu ook gedaan maar dan blijft nog het volgende:

1.1 (5%) word 1.15

maar

1.1 (15%) word dan 1.115!!!

ik moet denk ik dus een check doen en kijken of het om één of twéé getallen gaat en aan de hand daarvan moet ik dan

1.1

of

1.

doen, of denk ik nu verkeerd?
Offline lolll - 05/03/2012 16:19 (laatste wijziging 05/03/2012 16:20)
Avatar van lolll Lid Als het percentage een geheel getal is, moet je dat eerst door de functie parseInt() laten gaan, als het een komma getal is, door de functie parseFloat().
Nu ziet hij je percentage als tekst, en dus plakt hij die aan die 1.1, met parseInt/Float maakt hij er een getal van, zodat hij er mee kan rekenen.
De code zal dus zoiets worden:
  1. var korting = totaalprijs / (1.1 + parseInt(percentage));
  2. alert("Je korting is " + korting + " euro.");


Ofwel zet je direct:
  1. var percentage = parseInt(document.getElementById('kortingpercentage').value);


Ik denk dat hiermee je probleem wel moet verholpen zijn  

Lolll

EDIT:
Net iets te lang zitten typen  
Offline GroundZero - 05/03/2012 16:20
Avatar van GroundZero Lid haha dankjewel Lolll... echter kan ik het ook altijd op parseFloat laten staan?
of moet ik persé een check doen of het een float of int betreft?... en zo ja, enig idee hoe ?
Offline lolll - 05/03/2012 16:21
Avatar van lolll Lid Nee, maar als je weet dat het een geheel getal is, gaat ie het denk ik automatisch afronden. En anders gebruik je gewoon parseFloat
Bedankt door: GroundZero
Offline GroundZero - 05/03/2012 18:45 (laatste wijziging 05/03/2012 19:07)
Avatar van GroundZero Lid Kan zijn dat ik het nog verkeerd doe maar...
Check dit eens... de uitkomst klopt niet toch?

http://imagesha...070571.jpg/

Ik heb de volgende code:

  1. <script language="javascript">
  2. var test = 'abcde';
  3. alert("dit is een test die " + test + " neer zou moeten zetten ");
  4.  
  5. function calculate(){
  6. // als er gekozen is voor een korting van een x percentage
  7. if(document.getElementById('optie1').checked == true)
  8. {
  9. var korting = parseFloat(<?=$totaal?>) / 1.1 + parseInt(<?=$fetch['kosten_samen']?>);
  10. alert(korting);
  11. }
  12.  
  13. // als er gekozen is voor een korting van een x percentage
  14. if(document.getElementById('optie2').checked == true)
  15. {
  16.  
  17. }
  18. }
  19. </script>



Het gekke is, als ik het zelfde met PHP doe, dan klopt het wel allemaal...

  1. <?php
  2. echo number_format($totaal, 2).'<br /><br />';
  3. echo $fetch['kosten_samen'].'<br /><br />';
  4.  
  5. $perc = '1.1';
  6. $perc .= $fetch['kosten_samen'];
  7.  
  8. echo $perc.'<br /><br />';
  9.  
  10. echo $totaal / $perc;
  11. ?>


geeft netjes weer:

122.50

5

1.15

106.52173913043



EDIT:

Werkt nu, heb het volgende gedaan:

  1. if(document.getElementById('optie1').checked == true)
  2. {
  3. var procenten = "1.1" + "<?=$fetch['kosten_samen']?>";
  4. var korting = parseFloat(<?=number_format($totaal, 2)?>) / procenten;
  5.  
  6. alert(korting);
  7. }
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.219s