Autor Zpráva
Morgoloth
Profil *
Zdravím, měl bych pro někoho snad velmi triviální dotaz, ale nikde na netu jsem odpověď nenašel (už 3 hodiny hledání):

JAVASCRIPT

mám uloženou nebo vypočítanou proměnnou, například pi=3,14159235359...........

Ale do HTML kodu ji chci vypsat na určitý přesný počet desetinných míst, například 3,14, ví někdo, jak to udělat?

prostě něco typu: d.writeln(pi[2]); (jakože chci vypsat "pi" na 2 desetinný místa :-)

Díky za jakejkoliv rozumnej tip...
_es
Profil
Zaokrúhlenie na dve desatinné miesta pre premennú x:
x1 = Math.round(x*100)/100; // koľko núl, toľko miest
x2 = (Math.round(x*100)/100).toFixed(2); // to isté, len s doplnením prípadných koncových núl
Zaokrúhlenie na tri platné číslice:
x3 = x.toPrecision(3);

V tom druhom výpočte je funkcia round pre nekompatibilitu IE, inak by stačila len metóda toFixed.
Morgoloth
Profil *
_es: Díky moc... potřeboval jsem právě hlavně doplnění koncových nul, aby se čísla hezky řadila a navíc vypadala jednotně. Docela jsem s tím bojoval, protože když jsem chtěl vypsal výsledek výpočtu, docela to blbnulo a musel jsem vzorce někdy dost nesmyslně uzavírat do závorek... ale jinak super, když už jsem věděl, jak se funkce jmenuje, prohnal jsem jí googlem a kdyby někdo někdy potřeboval něco podobnýho, návod je tady:

http://www.mredkj.com/javascript/numberFormat.html

y.toFixed(x)   // vypíše číslo y na x desetinných míst
y.toPrecision(x)   // vypíše číslo y na x platných číslic


POZOR - v IE nutno dodržet správná velká písmena (toFixed), jinak to často háže chyby!!!

příklady:

var num = 10;
var result = num.toFixed(2); // vypíše hodnotu 10.00


num = 930.9805;
result = num.toFixed(3); // vypíše hodnotu 930.981


num = 500.2349;
result = num.toPrecision(4); // vypíše hodnotu 500.2


num = 5000.2349;
result = num.toPrecision(4); // vypíše hodnotu 5000


num = 555.55;
result = num.toPrecision(2); // vypíše hodnotu 5.6e+2
_es
Profil
Morgoloth
V tom odkaze asi nemali informáciu o tej nekompatibilite IE.
Zaujímavé je, že podľa IE (0.008).toFixed(2) je "0.00", no (1.008).toFixed(2) je už "1.01".

v IE nutno dodržet správná velká písmena (toFixed), jinak to často háže chyby!
To by vtedy malo hádzať chybu vždy a v každom prehliadači a nie len často.
Morgoloth
Profil *
_es
Díky moc... nekompatibilitu v zaokrouhlování zatím neřeším, možná na to přijde čas jindy. Stačí mi, že to vypíše nějaký číslo :-)

OK, je možný, že to háže chybu vždy... já jsem se s tím zezačátku trochu pral, než jsem zjistil, že za většinu problémů mohl zápis .Tofixed místo .toFixed :-(

Každopádně díky moc za rady a připomínky... zase jsem o něco chytřejší a s webem spokojenější :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: