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

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
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
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 nový
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é.

Osobne, ak mám uchovávať čas ako číslo, tak takýmto spôsobom (vynásobený 100) - najľahšia práva formátu (úprava na hodiny, minúty a podobne).

Edit: A mám dojem, že som to už raz tak aj použil.

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