wuldemar,
parseInt округляет дробные числа, т.к останавливается на десятичной точке.
function do_math(f)
{
var kolvo = +f.elements['kolvo'].value;
var cena = +f.elements['cena'].value;
var res = kolvo * cena
f.elements['r'].value = isNaN(res.toPrecision(1)) ? '' : res;
}