JavaScript tem um bug ao multiplicar decimais, tente você mesmo:
0.1 * 0.2
> 0.020000000000000004 // NodeJS 0.8
A maneira de corrigir isso é multiplicar os decimais antes de múltiplos seus valores, tente você mesmo:
( 0.1 * 10 + 0.2 * 10 ) / 10
> 0.3
Você pode criar uma função para isso:
function multdec ( val1, val2 ) {
return ( val1 * 10 + val2 * 10 ) / 10;
}
Você pode estender o objeto Math:
Math.multdec = function ( val1, val2 ) {
return ( val1 * 10 + val2 * 10 ) / 10;
}
Agora você pode chamar essa operação de duas maneiras:
multdec( val1, val2 ); // 0.3
// or
Math.multdec ( val1, val2 ); // 0.3