Originariamente inviato da l'evangelista
Sbaglio qualcosa io o è un problema di javascript?

Sbagli te

Hai due soluzioni:
Dato che quel metodo si applica a number e non a string, lo trasformi in number e poi applichi il metodo:

valore_da_scontare = (parseFloat(valore_da_scontare)).toFixed(2);


ma meglio, secondo me, è togliere
valore_da_scontare = valore_da_scontare.toFixed(6); dal ciclo, in modo da conservare la massima precisione, per poi fare, alla fine,
valore_da_scontare = valore_da_scontare.toFixed(2);


ps. dentro il ciclo, la moltiplicazione e divisione fanno si che valore_da_scontare sia un number, perciò, valore_da_scontare = valore_da_scontare.toFixed(6); funziona.