Ciao,
sto usando la funzione toFixed per correggere il noto problema di javascript sui decimali.
Ho notato questa anomalia:

codice:
<script language="javascript">
	function calcola_sconto(valore,array_sconti){
		valore_da_scontare = valore;
		for(var i=0;i<array_sconti.length;i++){
			importo_da_scontare = (valore_da_scontare * array_sconti[i])/100;
			importo_da_scontare = importo_da_scontare.toFixed(6);
			valore_da_scontare = valore_da_scontare - importo_da_scontare;
			valore_da_scontare = valore_da_scontare.toFixed(6);
			
		}
	//	valore_da_scontare = valore_da_scontare.toFixed(2);
		alert("TOTALE DEFINITIVO :"+valore_da_scontare);
	}
	
	elenco_sconti = new Array();
	elenco_sconti.push(0.5);
	elenco_sconti.push(1.2);
	elenco_sconti.push(2);
	elenco_sconti.push(1);
	da_scontare = 10;
	calcola_sconto(da_scontare,elenco_sconti);
</script>
La funzione calcola_sconto riceve come parametro un importo da scontare (nell'esempio, 10) e un array contenenti una serie di sconti da applicare in cascata, come accade su alcune fatture.

Durante il ciclo vorrei mantenere una certa precisione decimale (uso toFixed con 6 decimali), per evitare imprecisioni nel calcolo; il risultato finale però lo vorrei arrotondato a 2 decimali.

Se provo ad usare toFixed(2) sulla somma che esce dal ciclo (commentata nell'esempio) mi dà errore, sia con firefox ("is not a function") che con IE.

Sbaglio qualcosa io o è un problema di javascript?