Round y datos con punto decimal #157
irvingfloley
started this conversation in
Ideas
Replies: 1 comment 1 reply
-
Hola amigo, tambien me a pasado pero por mi, esta bien usar esa parte que al .5 lo redondeó hacia abajo pero por eso podrías utilizar este comando que también hacia mención en las katas from math import ceil, floor round_up = ceil(12.5) ##este redondeara hacia arriba round_down = floor(12.5) ##este redondeara hacia abajo |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Revisando la documentación del Modulo 5 opino que seria de mucho mayor utilidad dar una explicación un poco mas detallada sobre como la computadora trabaja con los decimales y las operaciones matemáticas, algo tan simple como lo mostrado en la explicación de un round de "14.5" que debería de mostrar de salida un 15.
La explicación hace mención que Python toma el valor de .5 en mayor o igual para redondear al entero superior, como muestra el documento del modulo:
Sin embargo, al correr el ejercicio en mi máquina tengo un resultado distinto:
Como pueden observar, en mi caso me redondea a 14, haciendo varias pruebas me di cuenta que si agregaba un decimal extra si que redondeaba a 15, pero en la vida real habrá casos en donde esto nos pueda generar un error en el resultado final, sobre todo cuando trabajamos con sistemas con fines auditables o contables. Ya hace algunos años tuve una situación similar con Java y los tipos de datos double o float, donde básicamente para poder validar las salidas tenia que usar la calculadora y arrastrar el lápiz, ya que Excel sufre del mismo problema, en general es un error muy común para las computadoras, investigando un poco me encontré con está liga que hace mención del mismo problema:
http://lukewrites.com/posts/rounding-decimals-in-python-or-why-doesnt-5-round-to-1/
Como desarrollador normalmente trabajo con C# y el tipo de dato decimal de este lenguaje tiene un mejor tratamiento con los decimales, en su momento en Java tuve que usar librerías adicionales para el manejo de decimales, si bien este es un curso básico e introductorio, creo que a los que aprenden a programar apenas debería de hacerse una advertencia y no tomar como verdad absoluta el manejo de decimales, ya que cuando les toque trabajar en sistemas mas complejos donde la precisión debe ser lo más exacta posible no vendría mal tenerlo en consideración.
Es mi punto de vista ya que en mi día a día el tema de este tipo de operaciones es sumamente delicado, hay empresas que hacen un drama cuando les falta un centavo en un calculo.
Beta Was this translation helpful? Give feedback.
All reactions