Allora, premesso che mi sto trattenendo da una fila initerrotta di imprecazioni, qualcuno mi spiega perchè il seguente codice funziona perfettamente sotto firefox
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' ;
}
mentre non in explorer?
per farlo andare in explorer ho scoperto che se faccio:
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' ;
}
PERCHE?
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' ;
}