2 decimalen achter de komma?

Status
Niet open voor verdere reacties.

sassiewas

Nieuwe gebruiker
Lid geworden
28 okt 2005
Berichten
3
Ik heb een mailform waarin een hidddfen field zit, waarin een berekening word uitgevoerd.

Er staat ook een invulveld in het formulier, en naar aanleiding van wat je daar invult, krijg je in je bevestigingsmail een bedrag te zien.
Het aantal personen wat je invult (bijvoorbeeld 3) wordt in het hidden field vermenugvuldigd met € 12,50

Alleen in de bevestigingsemail komt er geen 12.50 te staan, maar 12.5

Weet iemand hoe ik het voor elkaar krijg dat er wel 12.50 komt te staan?

Dit is de code zoals hij nu is:

<input type="submit" name="Submit" value="Ja, reserveer nu!" onClick="this.form.Totaalbedrag.value = '€ ' + Math.round(12.5 * 100) / 100 * (this.form.Personen.value)">
 
Hier staat wel wat over het rekenen met 2 decimalen enzo :):D


Edit: Dat had je al zo te zien..
Als je van die '12.5' in de formule nou '12.50' maakt, dan zou het wel moeten werken :)

Edit2: Overigens zou ik éérst die 12.50 keer het aantal personen doen.. en dan delen door 100, keer 100 :)
 
Ik heb dat al geprobeerd, maar het blijft hetzelfde.

Ik test hem elke keer met "3" dan moet er 37.50 uit komen, maar hij blijft 37.5 zeggen.

Misschien zit er een fout in mijn berekening ofzo?
Ik snap er echt niks van, hij zou het gewoon moeten doen....

Edit: Dat ga ik even proberen, ik laat zo wel weten of ie het doet
 
Nou ik heb het geprobeerd maar dan gaat hij afronden tot 13.

Ik snap niet zo goed wat ik fout doe, dus als je nog suggesties hebt??

GRAAG!
 
i * 3 ;)

Handig! Ik kende toFixed() nog niet.
 
Ik had nou juist /3 genomen, want *3 geeft een uitkomst met een 0 op het einde.
Met een uitkomst van 4.17 weet je zeker dat het goed gaat.

Ken je toPrecision() wel?
 
De 0 op het einde is toch juist de bedoeling?

Ken je toPrecision() wel?

Ja, net geleerd dankzij jou. :)

(12.5/3).toPrecision(2) == '4.2'
(125/3).toPrecision(2) == '42'
(1.25/3).toPrecision(2) == '0.42'

Het aantal significante cijfers is overal 2.
 
Getallen werken anders dan strings (tekstvariabelen), 12.5000 en 1.25e1 worden ook als 12.5 weergegeven.

(x).toFixed(n) zet een getal (x) om naar een string met een vast (n) aantal cijfers achter de punt, aangevuld met nullen als het er minder waren, afgerond als het meer waren. De oplossing is dan:

<input type="submit" name="Submit" value="Ja, reserveer nu!" onClick="this.form.Totaalbedrag.value = '€ ' + (12.5 * this.form.Personen.value).toFixed(2)">


Vr.Gr. Egel.
 
Bij x.toPrecision() kun je ook helemaal niets tussen de haken te zetten;
12.50 / 3 geeft dan 4.166666666666667
 
Code:
assert(x.toPrecision() == x.toString()); // :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan