Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

javascript geen 12,3 maar 12,30

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.