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' ;
}