Vraag & Antwoord

Webprogrammeren & scripting

javascript geen 12,3 maar 12,30

Anoniem
Niek Breur
6 antwoorden
  • Ik gebruik de volgende functie om een aantal bedragen op te tellen
    [code:1:89a3c3c3f9]function geld()
    {
    var price = 0;
    for (var i=0; i<top.frames[0].artArray.length; i++)
    {
    for (var j=1; j<=top.frames[0].aanArray[i]; j++)
    price = price + (GetPrice(top.frames[0].artArray[i]));
    }
    geld = (parseInt(price)/100).toString().replace(/\./g, ',');
    *****
    return geld;
    }
    [/code:1:89a3c3c3f9]

    Dat werkt hartstikke goed maar bij het optellen van centen vallen de laatste cijfers weg als dat nullen worden.
    Op de plaats van ***** moet dus een regel die de sting aanvult met nullen tot 2 cijfers achter de komma.

    Kan iemand hier dat zo uit de losse hand?

    Alvast bedankt.
  • uit de losse hand ;)
  • Ik denk dat de "losse hand" Nijmeegs is voor uit de mouw schudden.
  • ik gebruik dit script om getallen mooi tot op twee cijfers achter de komma af te ronden:
    [code:1:541f4922e1]function afrond(d)
    {
    getal = d;
    afronding=Math.round(getal*100);
    resultaat=afronding/100;
    naarstring=resultaat.toString();
    if(naarstring.indexOf('.')==-1)
    naarstring+='.00';
    komma=naarstring.indexOf('.');
    if(naarstring.charAt(komma+2)=='')
    naarstring+='0';
    return naarstring;
    }[/code:1:541f4922e1]
  • Ik heb van de laatste regel gemaakt

    return afrond(geld);

    Bij invoer van 26,30 wordt het resultaat

    NaN.00

    mag dat niet zo?
  • 26,30 is geen geldige numerieke waarde (NaN = Not A Number). Je zal daar dus eerst 26.30 van moeten maken.

    Voorbeeldjes (uit de losse hand):
    [code:1:9c6050a407]
    function commaToPoint(sInput)
    {
    var sTemp = '';

    for (var i = 0; i < sInput.length; i++)
    {
    if (sInput.charAt(i) == ',')
    {
    sTemp += '.';
    }
    else
    {
    sTemp += sInput.charAt(i);
    }
    }
    return (sTemp);
    }
    [/code:1:9c6050a407]

    Of met een reguliere expressie

    [code:1:9c6050a407]
    function commaToPoint2(sInput)
    {
    return sInput.replace(/,/, ".");
    }
    [/code:1:9c6050a407]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.