Autor | Zpráva | ||
---|---|---|---|
Misak-H Profil * |
Ahoj všem, potřebuji poradit.
Při přečtení proměnné z cookies a následnou matematickou operací (sčítání a následné dělení pro dosažení průměru) se načtená hodnota chová dost nestandardně a nechápu proč :-( Jedná se o jednoduše o (19+37+43+26+35)/5, ale místo výsledku xx,x se zobrazí něco co odpovídá rovnici takovéto "37*2","43*2","26*2","35*2",19/5 ta poslední proměnná se nenačítá z cookies a jediná se dělí. Ty předcházející se hodnota znásobí dvěma a zapíše se jako po sobě jdoucí text. Toto je sejmuté přímo ze stránky ... "Tin" proměnná, "a...d" hodnota načtená z cookies ... 19 -> C Tin4 37 -> C a 43 -> C b 26 -> C c 35 -> C d 748652703.8 ->°C Zdroj vypadá takto: <script type="text/javascript"> var CooT4a, CooT4b, CooT4c, CooT4d; rozsekaneCookies=document.cookie.split("; ") poleCookies= new Array; for(i in rozsekaneCookies){poleCookies[(rozsekaneCookies[i].split("=")[0])] = rozsekaneCookies[i].split("=")[1];} CooT4a = poleCookies["T4a"]; CooT4b = poleCookies["T4b"]; CooT4c = poleCookies["T4c"]; CooT4d = poleCookies["T4d"]; var Tin4 = '~in3ad~' - 273; var T4; T4 = (CooT4a + CooT4b + CooT4c + CooT4d + Tin4) / 5; document.write(Tin4 + " -> Tin4"); document.write(CooT4a + " -> a"); document.write(CooT4b + " -> b"); document.write(CooT4c + " -> c"); document.write(CooT4d + " -> d"); document.write(T4 + " ->°C"); </script> Možné to bude nějaká blbost, ale já ne to ne a ne přijít ... Předem díky za pomoc, M. Moderátor Chamurappi: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
Chamurappi Profil |
#2 · Zasláno: 9. 10. 2009, 13:36:29
Reaguji na Misaka-H:
„poleCookies= new Array;“ To ve skutečnosti nebude pole. Pracuješ s ním jako se strukturou/objektem. Kousky rozsekaných cookies jsou řetězce, takže jejich sečtením dostaneš také řetězec. Chceš-li je převést na číslo, použij vynásobení jedničkou, či funkce parseInt nebo parseFloat. Popisované chování mi však nesedí. Nerozumím, jak se může do T4 dostat číslo, mělo by tam být NaN (tj. „not a number“). Rovněž přiřazení „Tin4 = '~in3ad~' - 273“ mi připadá docela nesmyslné, protože z odečtení čísla od řetězce také nic smysluplného nevyleze. |
||
Misak-H Profil * |
#3 · Zasláno: 9. 10. 2009, 17:10:52
Moooc díky, už to funguje :-) To jsem nevěděl ... :-(
Jedná se o speciálnější alplikaci pro LAN modul, podrobnější info na ... Odkaz Vysvětlím „Tin4 = '~in3ad~' - 273“ Tin4 - Vstupní proměnná z třetího A/D vstupu procesoru, od které se odečte -273, to pro převod z °F na °C, tím je Tin4 reálná hodnota měřené teploty přímo ve °C. Toto funguje na jedničku. PS: Včera jsem tu byl poprvé, tak jsem nevěděl jak se vkládají kódy, příště se to již nestane. Ještě jenou díky !! M. |
||
Časová prodleva: 14 let
|
0