Autor | Zpráva | ||
---|---|---|---|
Feryy Profil * |
#1 · Zasláno: 18. 1. 2012, 10:49:05
Zdravím,
mám problém s funkcí Math.pow Math.pow(0.00276,300); Pokud ji využívám s desetinnou čárkou, nefunguje mi. Nevíte, jak se to dá obejít? Díky |
||
Radek9 Profil |
#2 · Zasláno: 18. 1. 2012, 10:57:48
Feryy:
Vždyť už tam máš desetinnou tečku. V tomto případě mocníš 0.00276 na 300. V čem je problém? |
||
_es Profil |
#3 · Zasláno: 18. 1. 2012, 10:59:20
Feryy:
„nefunguje mi“ To znamená čo? V tvojom kóde je výpočet tristej mocniny 0.00276 , čo je skoro nula. JS nepoužíva formát ukladania čísel, ktorý by umožňoval zapísať také malé číslo, preto bude výsledkom 0 .
|
||
Feryy Profil * |
#4 · Zasláno: 18. 1. 2012, 11:02:28 · Upravil/a: Feryy
Radek9:
Ano, ale výsledek je vždy 0, což je špatně. _es: A dá se to nějak obejít? Pokud mám tento příklad v php, tak mi to vychází v pořádku. function Mocnina($Zaklad, $Exp) { // řádek 1 if ($Exp) { // řádek 2 return $Zaklad * Mocnina($Zaklad, $Exp - 1); // řádek 3 } // řádek 4 return 1; // řádek 5 } |
||
_es Profil |
#5 · Zasláno: 18. 1. 2012, 11:40:35
Feryy:
„Ano, ale výsledek je vždy 0, což je špatně.“ Nie, je to správne. S pravítkom tiež neodmeráš rozmery atómov. „Pokud mám tento příklad v php, tak mi to vychází v pořádku.“ S rovnakými číslami? To bude asi tiež nula. Okrem toho, PHP na takéto výpočty asi má nejaké vstavané funkcie a netreba používať hentaké podivné. „A dá se to nějak obejít?“ Vymysli si nejaký vlastný formát čísel, vlastné funkcie na výpočty s nimi a vlastné funkcie na ich výpis. |
||
Joker Profil |
#6 · Zasláno: 18. 1. 2012, 13:50:11
Feryy:
„ale výsledek je vždy 0, což je špatně“ Je to správně, resp. jde o principiálně tutéž situaci, jako když si ten výpočet zadáte na stolní kalkulačce a vyjde taky 0. Reálných čísel je na jakémkoliv intervalu nekonečně mnoho, takže je logicky nelze všechny reprezentovat konečně velkou pamětí. Viz také Výsledkem výpočtu 1 - 0.9 není přesně 0.1 v častých dotazech. V některých případech (pokud extrémně malá čísla vycházejí jen v nějaké části výpočtu a pozdějšími operacemi zase narostou) může pomoci úprava postupu výpočtu. Pro zajímavost, to číslo je přibližně: 0,00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000187 |
||
Časová prodleva: 12 let
|
0