[JS] Formatowanie liczb

HTML to podstawy w dziedzinie tworzenia stron WWW, Style CSS warto opanować, bowiem za ich pomocą można dostosować odpowiednio wygląd swojej witryny WWW. Zagłębiamy się dalej i udostępniamy w tym forum możliwość zadawania pytań o JavaScript.
ODPOWIEDZ
pbern
Nowy
Nowy
Posty: 63
Rejestracja: pn lis 24, 2003 10:30 pm

[JS] Formatowanie liczb

Post autor: pbern »

Witam,

mam maly problem z formatowaniem liczb,

chcialbym aby liczby po wpisaniu z postaci 1000 byly przektalcane do 1 000,

czy ktos ma jakis pomysl? lub czy jest jakas funkcja JS ktora by to robila ?
paszczak
Nowy
Nowy
Posty: 123
Rejestracja: ndz paź 03, 2004 2:21 pm
Lokalizacja: Sopot
Kontakt:

Re: [JS] Formatowanie liczb

Post autor: paszczak »

wstawiac co trzeci znak od konca spacje ?
pbern
Nowy
Nowy
Posty: 63
Rejestracja: pn lis 24, 2003 10:30 pm

Re: [JS] Formatowanie liczb

Post autor: pbern »

paszczak pisze:wstawiac co trzeci znak od konca spacje ?
tzn w jaki sposob?
przy czym liczba moze byc tez w formacie x xxx,xx i wtedy nie bedzie to co 3 znak od tylu... ;/
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: [JS] Formatowanie liczb

Post autor: Marek_bf »

Kod: Zaznacz cały

<script type="text/javascript">
<!--
Math.formatujLiczbe = function(liczba, separatorTysieczny, separatorUlamkow) {
	var t1 = String(liczba).split('.');
	var t2 = t1[0].split('');
	t2.reverse();
	for (var i = 0, c = 0; i < t2.length; i++) {
		c++;
		if (c > 3) {
			c = 0;
			t2.splice(i, 0, separatorTysieczny);
		}
	}
	t2.reverse();
	var s = t2.join('');
	t1[1] != undefined ? s += separatorUlamkow + t1[1] : null;
	return s;
};

// var wynik = Math.formatujLiczbe(liczba, 'separatorTysieczny', 'separatorUlamkow');	

var wynik_1 = Math.formatujLiczbe(23.234, ' ', ',');	   
var wynik_2 = Math.formatujLiczbe(1289, ' ', ',');	  
var wynik_3 = Math.formatujLiczbe(52894.34, ' ', '.');		 
var wynik_4 = Math.formatujLiczbe(22894456.3981, '.', ',');	
var wynik_5 = Math.formatujLiczbe(999999999.4, ' ', ',');
var wynik_6 = Math.formatujLiczbe(1999999999.4, ' ', '.');			 

document.write(wynik_1 + '<br>' + wynik_2 + '<br>' + wynik_3 + '<br>' + wynik_4 + '<br>' + wynik_5 + '<br>' + wynik_6);
//-->
</script>
ODPOWIEDZ