REVIT ARCHITECTURE (444) – Programación (9) Conceptos básicos. Problemas con los decimales

JavaScript tiene problemas con los decimales.

Por ejemplo. en el caso de cálculo del iva de un importe, que desarrollamos en el artículo anterior REVIT ARCHITECTURE (443) – Programación (8) Conceptos básicos. Funciones y eventos (1), si se indica un importe de 99 euros, aparece el siguiente resultado:

 

1792

Esto también ocurre con la resta y con la multiplicación (además de la suma como hemos visto).

La solución a este problema se puede se de dos tipos.

Para ver cómo funcionan cada una de las soluciones  se realiza el siguiente ejemplo.

Con la opción toFixed(a) y el valor a es el número de decimales a indicar, que se requieren que aparezcan en el resultado de la operación.

 

1793

El problema de esta opción es que en caso de que el resultado sea un número entero, no elimina el cero después de la parte entera del número.

Además, devuelve un string, y en algunos casos el resultado no es correcto.

Veamos otra solución al problema. Se trataría de multiplicar y dividir el valor de cada variable decimal por el número 1000. Para ello habría que realizar una función para multiplicar y otra función para dividir.

La forma de realizarlo sería como se indica en el siguiente ejemplo: se crea una función para multiplicar por 1000 y otra función para dividir por 1000, y luego en la función suma se aplican estas funciones a los diferentes valores (multiplicar cada valor por 1000 y dividir por 1000).

 

1794.jpg

Realizamos el mismo cálculo del iva con el importe 99 euros y obtenemos el siguiente resultado:

 

1795

Funciona correctamente, de forma que ya no hay el problema de decimales que sufría javaScript al realizar este cálculo.

 

 

Licencia Creative Commons Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.

Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s