Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Javascript jednačina

[es] :: Javascript i AJAX :: Javascript jednačina

[ Pregleda: 2340 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zlatko
Zlatko Mićić
Užice

Član broj: 907
Poruke: 100
*.adslplus.ch.

Sajt: www.ue.co.rs


Profil

icon Javascript jednačina08.02.2011. u 19:41 - pre 159 meseci
Nemam mnogo iskustva sa JSom. Mislio sam da umem barem jednostavnu jednačinu da napravim, ali izgleda ne umem ni to.

var zbir = ((( koeficijentcb * boja_array[0]) + materijal_array[0] + plastifikacija_array[0] ) * kolicina ) + priprema_array[0] ;

U čemu grešim kod ove jednačine?
SlaveNewWorld
 
Odgovor na temu

japan

Član broj: 34328
Poruke: 480
*.dynamic.sbb.rs.



+13 Profil

icon Re: Javascript jednačina08.02.2011. u 23:09 - pre 159 meseci
A sta je problem? Sta ocekujes, a sta dobijas? Na osnovu ovog parceta koda tesko da moze ista da se kaze, sem da ne znas prioritet operatora... :)

Daj malo siri kontekst.
 
Odgovor na temu

zlatko
Zlatko Mićić
Užice

Član broj: 907
Poruke: 100
*.adslplus.ch.

Sajt: www.ue.co.rs


Profil

icon Re: Javascript jednačina09.02.2011. u 12:50 - pre 159 meseci
Problem je NaN , a ja očekujem broj :)

koeficijentcb = 322.000
boja_array[0] = 1.000
materijal_array[0] = 1.000
plastifikacija_array[0] = 2.000
kolicina = 48
priprema_array[0] = 1.000

Biće da ne znam prioritet operatora.
Može link ili pojašnjenje na brzinu?
SlaveNewWorld
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.static.sbb.rs.



+987 Profil

icon Re: Javascript jednačina09.02.2011. u 13:12 - pre 159 meseci
@zlatko

Da li si apsolutno siguran da su to te vrednosti promenljivih u trenutku kada dodje do te naredbe ? Ovo lici kao da je jedna od njih string ili nije definisana(typo).

Btw. firebug ima tab Script koji je dusu dao za debugovanje.
 
Odgovor na temu

zlatko
Zlatko Mićić
Užice

Član broj: 907
Poruke: 100
*.adslplus.ch.

Sajt: www.ue.co.rs


Profil

icon Re: Javascript jednačina09.02.2011. u 13:27 - pre 159 meseci
100% siguran.
Čak ni firebug ne izbacuje nikakav problem.
Izbacivao sam članove iz jednačine, jedan po jedan, da vidim gde nastaje problem i našao da se rešenje gubi između + materijal_array[0] + plastifikacija_array[0]. Dobijem rezultat čim jedno od ta dva izbacim.
SlaveNewWorld
 
Odgovor na temu

japan

Član broj: 34328
Poruke: 480
*.dynamic.sbb.rs.



+13 Profil

icon Re: Javascript jednačina09.02.2011. u 13:29 - pre 159 meseci
Verovatno je problem do inicijalizacije tih nizova. Evo dva moguca resenja, na brzinu testirano...

Code:

// da bi mogao da dodeljujes vrednosti clanovima niza, moras prvo da deklarises nizove
var boja_array = new Array();
var materijal_array = new Array();
var plastifikacija_array = new Array();
var priprema_array = new Array();

koeficijentcb = 322.000
boja_array[0] = 1.000
materijal_array[0] = 1.000
plastifikacija_array[0] = 2.000
kolicina = 48
priprema_array[0] = 1.000

var zbir = ((( koeficijentcb * boja_array[0]) + materijal_array[0] + plastifikacija_array[0] ) * kolicina ) + priprema_array[0] ;


Code:

// moze i ovako, deklaracija i dodela vrednosti odjednom
koeficijentcb = 322.000
boja_array = [1.000]
materijal_array = [1.000]
plastifikacija_array = [2.000]
kolicina = 48
priprema_array = [1.000]

var zbir = ((( koeficijentcb * boja_array[0]) + materijal_array[0] + plastifikacija_array[0] ) * kolicina ) + priprema_array[0] ;


Oba daju rezultat 15601.

Sto se tice prioriteta, * ima veci prioritet od +, tako da ne moras da pises (a*b) + c, mozes da napises bez zagrada, a*b + c, uvek ce se prvo mnoziti, pa tek onda sabirati. A ako hoces prvo sabiranje, pa onda mnozenje, onda ti trebaju zagrade a*(b + c)

 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.eunet.rs.



+19 Profil

icon Re: Javascript jednačina09.02.2011. u 13:34 - pre 159 meseci
kreni redom:
alert(koeficijentcb);
alert(boja_array[0]);
alert(materijal_array[0]);
alert(plastifikacija_array[0]);
alert(kolicina);
alert(priprema_array[0]);


ovo stavi pre jednačine pa gledaj šta ti prikazuje.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

zlatko
Zlatko Mićić
Užice

Član broj: 907
Poruke: 100
*.adslplus.ch.

Sajt: www.ue.co.rs


Profil

icon Re: Javascript jednačina09.02.2011. u 13:47 - pre 159 meseci
krenuo redom...

322
1.000
1.000
2.000
48
1.000

evo i cele funkcije
Code:

        var koeficijent   = 2;
        var koeficijentcb   = 322.000;
        var koeficijentcolor   = 1280.000;
        
        var kolicina   = document.getElementById('kolicina').value;
        
        var bojadata   = document.getElementById('boja').value;
        var boja_array=bojadata.split("_");
        
        var materijaldata   = document.getElementById('materijal').value;
        var materijal_array=materijaldata.split("_");
        
        var pripremadata   = document.getElementById('priprema').value;
        var priprema_array=pripremadata.split("_");
        
        var plastifikacijadata   = document.getElementById('plastifikacija').value;
        var plastifikacija_array=plastifikacijadata.split("_");
        
        var kolicinaformat = document.getElementById("kolicinaformat");
        document.getElementById('kolicinaformat').value= kolicina;
        
        var bojaformat = document.getElementById("bojaformat");
        document.getElementById('bojaformat').value= boja_array[0];
        
        var materijalformat = document.getElementById("materijalformat");
        document.getElementById('materijalformat').value= materijal_array[0];
        
        var pripremaformat = document.getElementById("pripremaformat");
        document.getElementById('pripremaformat').value= priprema_array[0];
        
        var plastifikacijaformat = document.getElementById("plastifikacijaformat");
        document.getElementById('plastifikacijaformat').value= plastifikacija_array[0];
        

        var zbir = ((( koeficijentcb * boja_array[0]) + materijal_array[0] + plastifikacija_array[0] ) *  kolicina ) + priprema_array[0] ;
        
        var zbir=Math.round(zbir*100)/100
        
        document.getElementById('zbir').value= zbir;

SlaveNewWorld
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.static.sbb.rs.



+987 Profil

icon Re: Javascript jednačina09.02.2011. u 13:49 - pre 159 meseci
plastifikacija_array
priprema_array

ovo mi deluje kao niz stringova

probaj ovako:

Code:

var zbir = ((( koeficijentcb * boja_array[0]) + parseInt(materijal_array[0]) + parseInt(plastifikacija_array[0]) ) *  kolicina ) + parseInt(priprema_array[0]) ;


Edit:

Mala izmena, parsiranje string => int.
 
Odgovor na temu

zlatko
Zlatko Mićić
Užice

Član broj: 907
Poruke: 100
*.adslplus.ch.

Sajt: www.ue.co.rs


Profil

icon Re: Javascript jednačina09.02.2011. u 14:12 - pre 159 meseci
Danke Man :)
sad radi
SlaveNewWorld
 
Odgovor na temu

[es] :: Javascript i AJAX :: Javascript jednačina

[ Pregleda: 2340 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.