E` l'effetto delle operazioni in virgola mobile.
JS (a differenza di altri linguaggi) non fa l'arrotondamento automatico, ed occorre ogni volta applicare la formula:
risult = Math.round(risult*100)/100;
Nel tuo caso, io userei varibaili interne al JS. Tu fai sempre riferimento ai campi di testo.
codice:
function calcola(){
var ff = document.form1;
var imp = parseFloat(ff.imponibile.value);
var iva = imp * .2;
var tot = imp + iva;
var irp = imp * .5 * .23;
var net = tot - irp;
ff.iva.value = Math.round(iva*100)/100;
ff.totale.value = Math.round(tot*100)/100;
ff.irpef.value = Math.round(irp*100)/100;
ff netto.value = Math.round(net*100)/100;
}
(spero di non aver commesso errori)