Toon posts:

[js] Altijd twee decimalen

Pagina: 1
Acties:
  • 448 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil een getal altijd met twee decimalen weergeven. Het gaat namelijk om een bedrag. Nu heb ik hier gezocht en gevonden dat je *100/100 achtige praktijken uit kan halen om dit te realiseren. Alleen gaat dit fout bij getallen als 15 en 15,5 ik wil daar dus 15,00 en 15,50 van maken. Dus na de komma kijken hoeveel decimalen er staan en aan de hand daarvan er extra nullen achter plakken.

Ik heb het goed bedrag al als een string in de vorm van 15,5. Hoe kan ik hem nu splitten op de komma en dan kijken hoeveel variabelen ik erachter heb?

In php heb je zoiets als number_format, bestaat dit niet in js?

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
Misschien kun je hier wat mee

  • OnTracK
  • Registratie: Oktober 2002
  • Laatst online: 15:22
tsja, als ik dat doe gebruik ik eigenlijk een nogal inefficiënte manier van controleren hoveel decimalen het getal heeft en automatisch de tekst "0" erachter plakken, dit werkt goed als je niet teveel getallen hebt en je er niet verder mee hoeft te rekenen (of het originele getal gebruikt om verder te rekenen)

dan krijg je zoiets:
JavaScript:
1
2
3
4
5
6
7
8
9
10
function Decimaal()
{   if(Math.round(getal) == getal)
    {   // dan heeft het getal geen decimalen en moeten er twee nullen bij
        getal2 = getal + ',00';
    } else if(Math.round(getal*10) == (getal*10))
    {   // dan heeft het getal één decimaal en moeten er één nul bij
        getal2 = getal + '0';
    }
    // anders had het getal al twee decimalen en hoef je niks te veranderen
}


let er even op dat als je Math.round doet of iets in die richting dat "Math" een hoofdletter M moet hebben, anders werkt het niet..

[ Voor 26% gewijzigd door OnTracK op 24-12-2003 13:00 ]

Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.


Verwijderd

Topicstarter
Koel thanks. Die laatste werkt zwaar mooi.
Eigenlijk simpel.

  • GeeBee
  • Registratie: Maart 2000
  • Laatst online: 16-05 18:10

GeeBee

Oddball

En dan nog afronden toevoegen van getallen met >3 decimalen.

Woof, woof, woof, woof! That's my other dog imitation. | https://youtu.be/TzsNh3-FnHQ


  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

GeeBee schreef op 25 december 2003 @ 11:36:
En dan nog afronden toevoegen van getallen met >3 decimalen.
keer 100, afronden, delen door 100.

Is niet zo moeilijk.

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 22-05 14:17
Grappig, hier ben ik gisteren nog mee bezig geweest :).

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
function round(x) {
    var fixedNum = Math.round(parseFloat(x) * 100) / 100;
    var sFixedNum = new String(fixedNum);
    var aFixedNum = sFixedNum.split(".");

    var i = (aFixedNum[1]) ? aFixedNum[1].length : 0;
    if (i == 0) sFixedNum += ".";
    while (i < 2) {
        sFixedNum += "0";
        i++;
    }
    return sFixedNum 
}


Verschil met deze functie en anderen is dat er dus zoals je al vraagt 2 = 2.00 wordt. Als je wilt kan ik de achter de komma decimalen variabel maken...

[ Voor 5% gewijzigd door zeroxcool op 25-12-2003 11:44 ]

zeroxcool.net - curity.eu


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

aantal decimalen variabel:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (typeof Number.prototype.toFixed == 'undefined') {

  Number.prototype.toFixed = function(n) {

    var p = Math.pow(10,n);
    var sFixedNum = (Math.round(this * p) / p).toString();

    var aFixedNum = sFixedNum.split('.');
    if (aFixedNum.length == 1) aFixedNum[1] = '';

    var l = aFixedNum[1].length;
    while (l++ < n) aFixedNum[1] += '0';

    return aFixedNum.join('.');

  }

}

var r = 1.2;
alert(r.toFixed(3)); // 1.200

[ Voor 11% gewijzigd door crisp op 25-12-2003 13:05 ]

Intentionally left blank


Verwijderd

Number.toFixed(2)

Reference guides, reference guides, reference guides...
Dáár vind je dit soort zaken.

[ Voor 73% gewijzigd door Verwijderd op 25-12-2003 12:58 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 25 december 2003 @ 12:57:
Number.toFixed(2)

Reference guides, reference guides, reference guides...
Dáár vind je dit soort zaken.
totaal overheen gelezen :)
Bedenk wel dat de toFixed() method pas in javascript 1.5 gekomen is, voor oudere browsers heb je nog steeds je eigen functie nodig.
(voorbeeld hierboven even aangepast)

[ Voor 5% gewijzigd door crisp op 25-12-2003 13:06 ]

Intentionally left blank

Pagina: 1