Avevo gia` affrontato l'argomento in maniera esaustiva tempo fa. Magari c'e` un link fra gli script utili.

Comunque un numero decimale (con virgola) e` trattato dai computer come floating point, che consiste in una conversione strana con una base ed una mantissa (tutto numeri binari).
Nella riconversione in decimale vengono introdotti quei decimali in piu`.

La soluzione consiste nell'applicare l'arrotondamento (a due cifre):

var temp = parseFloat(window.opener.document.form1.input_imp_ acc2.value) + imp;
window.opener.document.form1.input_imp_acc2.value = Math.round(temp*100)/100;

PS. lascia stare gli eval() che non portano nulla di buono e caricano il client inutilmente (oltre ad essere deprecati).

Ciao
Michele