Allora, premesso che mi sto trattenendo da una fila initerrotta di imprecazioni, qualcuno mi spiega perchè il seguente codice funziona perfettamente sotto firefox
mentre non in explorer?codice://funzione che arrotonda ai 2 decimanli function arrotonda(valore){ return Math.round(valore*100) / 100; } //funzione che calcola il totale di un movimento di carico function conteggia_movimento_carico(id_prodotto){ nome_form ='carica_'+id_prodotto; nome_div ='carica_valore_movimento_'+id_prodotto; f=document.forms[nome_form]; quantita=parseFloat(f.quantita.value); prezzo =parseFloat(f.prezzo_attuale.value); valore_movimento=String(arrotonda(quantita*prezzo)); document.getElementById(nome_div).innerHTML=valore_movimento+ ' Euro' ; }
per farlo andare in explorer ho scoperto che se faccio:
PERCHE?codice://funzione che arrotonda ai 2 decimanli function arrotonda(valore){ return Math.round(valore*100) / 100; } //funzione che calcola il totale di un movimento di carico function conteggia_movimento_carico(id_prodotto){ nome_form ='carica_'+id_prodotto; nome_div ='carica_valore_movimento_'+id_prodotto; f=document.forms[nome_form]; quantita=parseFloat(f.quantita.value); prezzo =parseFloat(f.prezzo_attuale.value); valore_movimento=String(arrotonda(quantita*prezzo)); alert(valore_movimento); document.getElementById(nome_div).innerHTML=valore_movimento+ ' Euro' ; }
forse l'alert cambia la variabile facendo un cast su stringa?
in tal caso come faccio a fare questo cast?
[edit]
credo di avere risolto cosi:
/*arrotonda un float */
function arrotonda(valore){
return Math.round(valore*100) / 100;
}
/*funzione che calcola il valore di un movimento di carico*/
function conteggia_movimento_carico(id_prodotto){
nome_form ='carica_'+id_prodotto;
nome_div ='carica_valore_movimento_'+id_prodotto;
quantita=parseFloat(document.forms[nome_form].elements['quantita'].value);
prezzo =parseFloat(document.forms[nome_form].elements['prezzo_attuale'].value);
valore_movimento=String(arrotonda(quantita*prezzo) );
document.getElementById(nome_div).innerHTML=valore _movimento+ ' Euro' ;
}

Rispondi quotando