» »

[JavaScript] for loop

[JavaScript] for loop

AmokRun ::

Nekaj me bega pri for zanki.
for(var i = 0; i < 1; i += 0.01){}


i bi se tule moral povečevati za 0.01, ampak se ne.8-O
Takole zgleda, če ga izpišem. Kakšen predlog, kako naj se tega znebim??
0
0.01
0.02
0.03
0.04
0.05
0.060000000000000005
0.07
0.08
0.09
0.09999999999999999
0.10999999999999999
0.11999999999999998
0.12999999999999998
0.13999999999999999
0.15
.
.

arjan_t ::

zaradi tega kakor so shranjena float števila v računalniku je nemogoče shraniti vrednost npr. 0.1

l0g1t3ch ::

I povečuj za celo število, sepravi za 1.
Decimalna števila v računalniku se ne da predstavit povsem točno in ko ti seštevaš 0.01 se pojavi napaka.

edit
me je že arjan_t prehitel.
Če pa te zanima več o zvezi z predstavitvijo decimalnih števil v računalniku pa poglej za IEEE 754 standardom, ki opisuje fp aritmetiko.

Zgodovina sprememb…

  • spremenilo: l0g1t3ch ()

AmokRun ::

Aha na napako pri floatu pa sploh nisem pomislil.
Hvala.

alexa-lol ::

nekaj me bega pri tvoji zanki....
inicializiral si jo verjetno ze prej...zakaj pol pises var i = 0 , ce bi lahko napisal samo i = 0

arjan_t ::

i - globalna spremenljivka
var i - lokalna spremenljivka

AmokRun ::

Ja brez veze je var tam. Verjetno zato, ker sem navajen Jave in C#, tam je pa to nujno... :)

frudi ::

Če nisi i deklariral že prej, ni prav nič brezveze var i v zanki. Kot je že arjan_t napisal - če izpustiš var, implicitno i deklariraš kot globalno spremenljivko.
Čeprav je to v javascript možno oz. 'dovoljeno', še ne pomeni, da je dobra praksa... pravzaprav je zelo slaba, zato kar lepo piši var i = 0 v for zanke!
1ACDoHVj3wn7N4EMpGVU4YGLR9HTfkNhTd... in case I've written something useful :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

jquery ajax problem

Oddelek: Izdelava spletišč
81487 (1109) miko22
»

Jquery

Oddelek: Izdelava spletišč
151814 (1538) mk818764
»

while in for odštevanje - kot rezultat upošteva tudi izhodiščno vrednost

Oddelek: Programiranje
182157 (1880) slitkx
»

[c] osnove

Oddelek: Programiranje
352539 (1876) fiction
»

Šah [Pacsal]

Oddelek: Programiranje
152236 (1839) NeOman

Več podobnih tem