Autor | Zpráva | ||
---|---|---|---|
TomasJ Profil |
#1 · Zasláno: 23. 2. 2011, 20:23:01
Zdravím, potřebuji nějak zaokrouhlit číslo, které má asi 18 desetinných míst, na 2 desetinná místa.
Fakta: Vím, že je na to metoda Math.round() || Math.ceil() || Math.floor() - nicméně žádná tato metoda to nezaokrouhlí výsledek na 2 desetinná místa, nýbrž na celé číslo. Řešení pomocí PHP znám a to nepotřebuji. Poradíte mi někdo jak na to? Děkuji. |
||
Chamurappi Profil |
#2 · Zasláno: 23. 2. 2011, 20:31:50
Reaguji na TomaseJ:
Číslo.toFixed(2) Napiš si vlastní funkci — vynásob číslo stovku, zaokrouhli Math.round em a zase ho vyděl stovkou.
|
||
TomasJ Profil |
#3 · Zasláno: 23. 2. 2011, 20:35:45
Chamurappi:
Děkuji :) Něco podobného jsem měl, akorát jsem to dělal špatným postupem... Díky moc! :) |
||
_es Profil |
#4 · Zasláno: 23. 2. 2011, 20:38:06
TomasJ:
Viď Javascript - jak vypsat číslo na X desetinných míst?. Pozri si aj tú nekompatibilitu IE. |
||
Chamurappi Profil |
#5 · Zasláno: 23. 2. 2011, 20:48:10 · Upravil/a: Chamurappi
|
||
TomasJ Profil |
#6 · Zasláno: 23. 2. 2011, 20:55:08 · Upravil/a: TomasJ
Vskutku. Ve výsledku neumí počítat ani jeden, kromě Safari. Ale ostatní prohlížeče narozdíl od IE mají jen drobnou odchylku... Díky, funkci jsem si udělal, vše jede jak má :)
EDIT: Myslíte, že by se tato funkce dala ještě nějak odlehčit? Měla by plnohodnotně nahradit funkci round(); v PHP. function Round(num,precision) { var val = 1; for(var i=0;i<precision;i++){val=val*10;} return Math.round(num*val)/val; } |
||
Radek9 Profil |
#7 · Zasláno: 23. 2. 2011, 21:14:41 · Upravil/a: Radek9
TomasJ:
Možná takhle: function Round(num, precision){ var val = precision!=undefined?Math.pow(10, precision):1; return Math.round(num*val)/val; } |
||
TomasJ Profil |
#8 · Zasláno: 23. 2. 2011, 21:27:46
Radek9:
No ta ochrana tam být nemusí, jelikož to bude používat jen skript, ne uživatel. Ale jinak je to docela ulehčené od cyklu. Mocnina mě opravdu nenapadla. Díky :) |
||
Časová prodleva: 5 let
|
|||
Soptik Profil * |
#9 · Zasláno: 11. 5. 2016, 16:20:27
Takhle to funguje:
function Zaokrouhli(cislo,pocet_destinych_mist){ var mocnina = 10; for(var i = 1; i < pocet_destinych_mist; i++){ mocnina = mocnina * 10; } cislo = cislo * mocnina; cislo = Math.round(cislo); cislo = cislo / mocnina; return cislo; } // Napsal Soptik |
||
Davex Profil |
#10 · Zasláno: 11. 5. 2016, 20:02:32
Soptik:
Nestačilo by něco takového? function Round(num, precision) { return Number(Math.round(num + "e" + precision) + "e-" + precision); } |
||
Kajman Profil |
#11 · Zasláno: 12. 5. 2016, 08:18:52
|
||
Časová prodleva: 8 let
|
0