Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno [ JavaScript ] Problém s desatinnými číslami

Dobry den (rano :-))

Mam taky problem , ze ked nacitam z formulara na stranke (<option value=desatinnecislo ....) desatinne cislo, a testujem ho v Javascripte tak mi to hadze nezmysly.
PRIKLAD:
z dvoch SELECT-ov na formulari nacitam dve desatinne cisla

function check(form)
{
	odd=form.odd.value;
	ddo=form.ddo.value;
if (odd > ddo)
    {
        alert("Zle zadaný čas");
        
        return false;
    }
	
	

	else{ 
    return true;}
}

Priklad: nacital hodnoty, : odd=7.30 a ddo=9.00 ... podmienka normalne funguje, odd<ddo
ALE! Pokial nacita hodnoty: odd=7.30 a ddo=10.00 (a vyssie) ... tak mi podmienka nefunguje, proste mi to hodi, ze 10.00 je mensie ako 7.30 !!!
no je to normalne ?
existuje nejaka funkcia na konverziu na desatinne cislo ? alebo v com je problem ?

vopred dakujem vsetkym za radu

Předmět Autor Datum
Je to normálne - pretože value je reťazec, tak to porovnáva ako reťazce. Keď odčítaš od value nulu,…
los 15.12.2006 00:33
los
vdaka... funguje to ... podmienka uz vyhodnocuje dobre, akurat ze ked nacita 10.00, tak cez Javascri…
mrazik 15.12.2006 08:32
mrazik
Vynásob to 100.;-)
msx. 15.12.2006 11:41
msx.
no aj to je riesenie ..... ale mne to uz funguje aj takto .... len vies ja som si myslel ze sa da v…
mrazik 15.12.2006 12:46
mrazik
V JS nie som odborínk, ale pokiaľ viem, tak tam sú premenné riešené horšie ako v BASICu. Nie len, že…
msx. 15.12.2006 12:54
msx.
Osobne, ak mám uchovávať čas ako číslo, tak takýmto spôsobom (vynásobený 100) - najľahšia práva form…
msx. 15.12.2006 12:56
msx.
nj, asi to tak aj spravim .... Milos , si hlavicka :-D
mrazik 15.12.2006 13:02
mrazik
Cas je dobre ukladat v pocte sekund alebo minut apod (v najnizsej jednotke aku pouzivas) Ak pouzivam… poslední
MM.. 15.12.2006 15:32
MM..

Je to normálne - pretože value je reťazec, tak to porovnáva ako reťazce. Keď odčítaš od value nulu, tak sa to automaticky prekonvertuje na číslo:

var odd = form.odd.value - 0;

Je dobré pri deklarovaní premenných, ktoré používaš iba vo funkcii, použiť kľúčové slovo var. Bez neho sa tie premenné používajú ako globálne premenné.

Cas je dobre ukladat v pocte sekund alebo minut apod (v najnizsej jednotke aku pouzivas)
Ak pouzivam len hodiny a minuty tak napr. 7:30 bude prepocitany na: 7*60 + 30
Ma to vyhodu v tom, ze sa da priamo s tymi hodnotami ratat casovy rozdiel (cas_a - cas_b), co sa pri ukladani ako hodiny.minuty neda (napr. 10.30 - 9.45 by bolo 0.85 co by bol nezmysel - muselo by sa to potom pracne preratavat), ale reprezentovane ako (10*60+30) - (9*60+45) = 45 (minut) - co suhlasi.

Zpět do poradny Odpovědět na původní otázku Nahoru