| 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.roundem 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: 10 let
|
|||
0