login  Naam:   Wachtwoord: 
Registreer je!
 Forum

math.round() (Opgelost)

Offline IndexS - 24/03/2016 14:24
Avatar van IndexSMySQL interesse Ik heb een formulier waar je producten kunt kiezen en waarbij automatisch de prijzen erbij komen te staan. Onderaan het formulier worden alle bedragen bij elkaar opgeteld en wordt er een totaal weergegeven. Ik gebruik daarvoor onderstaande regel.

$fieldTotals.val('€ ' + Math.round(($bestellijstTotals)*100)/100);

Als het totaal bijvoorbeeld 5,55 is dan wordt het netjes weergegeven. Het probleem is dat het bedrag nog steeds op 1 getal wordt afgerond achter de komma als het een rond bedrag is zoals 5,5. Ik wil dan graag 5,50 als totaal hebben. Ik heb ook round($bestellijstTotals, 2) geprobeerd maar het resultaat is hetzelfde. Als ik achteraan *10/10 doe dan rond het wel netjes af naar 1, zoals 1,79 wordt dan 1,8. Snap niet waarom dan de *100/100 niet wil werken.

Iemand een idee?

Alvast bedankt!

2 antwoorden

Gesponsorde links
Offline Thomas - 24/03/2016 15:08
Avatar van Thomas Moderator eerste Google resultaat

Oplossing: parsefloat(<nummer>).toFixed(<gewenste aantal decimalen>)

Het decimale scheidingskarakter is dan nog steeds een punt, overigens.

En als je verder leest in de thread, is dit wellicht nog een betere oplossing, omdat toFixed() blijkbaar wat problemen heeft met afronden (mogelijk in enkele randgevallen). Hier zou je dan met de volgende workaround omheen kunnen:

Oplossing: Number(Math.round(<nummer>+'e2')+'e-2').toFixed(<gewenste aantal decimalen>);
Zie het aanverwante artikel.

En als je daar allemaal geen zin in hebt en al gebruik maakt van jQuery, kun je ook de jQuery plugin gebruiken waar even verderop aan gerefereerd wordt.

Oplossingen te over, take your pick.
Bedankt door: IndexS
Offline IndexS - 24/03/2016 15:34
Avatar van IndexS MySQL interesse Ik had die pagina's ook al bekeken en geprobeerd met round() en toFixed() maar dat lukte me niet. De combi werkt inderdaad prima! Gebruik nu onderstaande.

$fieldTotals.val('€ ' + Number(Math.round(($bestellijstTotals)+'e2')+'e-2').toFixed(2));

Bedankt voor de support!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.167s