JavaScript – multiplicação decimal indolor

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