login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Twee decimalen in uitkomst

Offline hans_spanje - 06/11/2012 16:58 (laatste wijziging 06/11/2012 21:21)
Avatar van hans_spanjeNieuw lid Hallo Allemaal,

ben de laatste paar dagen aan het proberen om de uitkomst van een calculator zover te krijgen dat er maar twee decimalen worden getoond, lukt echter niet.

Heb ToFixed(2) en Math.round geprobeerd maar ik krijg het maar niet voor elkaar. Dit is de code waar het om gaat:

  1. //<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
  2. //<![CDATA[
  3.  
  4. $(window).load(function(){
  5. $("#calculate").on('click', function() {
  6. var fee = $("#fee").val();
  7. for (var i=0;i<5;i++) {
  8. fee = fee * 1.05;
  9. }
  10. $("#five").html(fee);
  11. for (var i=0;i<5;i++) {
  12. fee = fee * 1.05;
  13. }
  14. $("#ten").html(fee);
  15. for (var i=0;i<5;i++) {
  16. fee = fee * 1.05;
  17. }
  18. $("#fifteen").html(fee);
  19. });
  20. });
  21.  
  22. //]]>




Enige hulp om me in de juiste richting te sturen is zeer welkom.

Alvast bedankt voor jullie tijd,
Groeten uit (een nogal nat) Spanje

3 antwoorden

Gesponsorde links
Offline Martijn - 06/11/2012 21:31
Avatar van Martijn Crew PHP Eerst eens kijken of we het makkelijker kunnen maken. Bedoel je met dat loopje steeds dat iets 5*1.05 moet gaan? Als dat het geval is, kun je dat beter met Math.pow() oplossen:
  1. var fee = $("#fee").val();
  2. //for (var i=0;i<5;i++) {
  3. // fee = fee * 1.05;
  4. //}
  5. // Dan gaan we het omzetten naar een decimaal. Voor uitleg zou uit elkaar handiger zijn, maar pow doet dit:
  6. // Math.pow(3, 4) = 3*3*3*3;
  7. // Math.round doet naar 'the nearest integer', dus hele getallen. Als je dat eerst maar 100 doet, zal deze afronden, en dan als je het weer deelt door 100 heb je je 2 cijfers achter de komma:
  8. // 1,2345*100 = 123,45, round-> 123, deel weer door 100 -> 1,23.
  9. var fee5 = Math.round( (fee * Math.pow( fee, 5 ))*100)/100;
  10. var fee10 = Math.round( (fee * Math.pow( fee, 10 ))*100)/100;
  11. var fee15 = Math.round( (fee * Math.pow( fee, 15 ))*100)/100;


Bedankt door: hans_spanje
Offline hans_spanje - 07/11/2012 16:41
Avatar van hans_spanje Nieuw lid Hallo Martijn,

Allereerst, Bedankt voor je antwoord, heb het helaas nog niet aan de gang, het gaat hierom dat het ingevulde getal ieder jaar wordt verhoogd met 5% en dan wil ik de resultaten laten zien na 5, 10 en 15 jaar.

Hier is de volledig code:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type='text/javascript'>//<![CDATA[

$(window).load(function(){
$("#calculate").on('click', function() {
var fee = $("#fee").val();
for (var i=0;i<5;i++) {
fee = fee * 1.05;
}
$("#five").html(fee);
for (var i=0;i<5;i++) {
fee = fee * 1.05;
}
$("#ten").html(fee);
for (var i=0;i<5;i++) {
fee = fee * 1.05;
}
$("#fifteen").html(fee);
});
});

//]]>

</script>

<label>fee</label>
<input type="text" id="fee"><br/>
<button id="calculate">Calculate</button><br/>
<label>five years</label>
<div id="five"></div><br/>
<label>ten years</label>
<div id="ten"></div><br/>
<label>fifteen years</label>
<div id="fifteen"></div>

Offline Martijn - 07/11/2012 19:37 (laatste wijziging 07/11/2012 19:39)
Avatar van Martijn Crew PHP Ik heb in mn eerste reactie toch voldoende gegeven hiervoor? Beetje beter lezen ;)

edit: Je grbuikt on() trouwens niet helemaal optimaal, beter is zo:

  1. $(document).on('event', '#jQuerySelector.Voorbeeld', function(){
  2. // iets
  3. });

Motivatie is dat als je de selector eerst zit ipv document, en je dit vaak hebt, deze elke keer dat element gaat opzoeken, en daar de event aan koppelen. De document is de root, dus hoeft niet steeds alles te zoeken bij load. De manier waarop jQuery de elementen selecteert (via bubble techniek) is dit efficienter
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.203s