function redondeo(cantidad, decimales) {
// Por defecto, sin decimales, se devuelve parte entera.
var decimales = (decimales) ? parseInt(decimales, 10) : 0 ;
return
Math.round(cantidad*Math.pow(10,decimales))/Math.pow(10,decimales);
}
Es recomendable el uso de alguna función de estas características
para evitar resultados con decimales periódicos o problemas con
cálculos javascript de doble precisión.
*** Ejemplo de resultado con decimal periódico:
javascript:alert(1/3)
Resultado: 0.33333333333333...
javascript:alert(redondeo(1/3, 2))
Resultado: 0.33
*** Ejemplo de problema con cálculos javascript de doble precisión:
(problema similar en múltiples lenguajes)
javascript:alert(1 - 0.8 - 0.2)
Resultado: -5.551115123125783e-17
javascript:alert(redondeo(1 - 0.8 - 0.2), 2)
Resultado: 0
*** Página para pruebas:
http://ikax.net?redondeo