···3030números muy diferentes. Y cuando los números son muy grandes, el epsilon
3131puede acabar siendo más pequeño que el mínimo error de redondeo, por lo que
3232la comparación siempre devolvería «falso». Por tanto, es necesario ver si
3333-el *error relativo* es menor epsilon:
3333+el *error relativo* es menor a epsilon:
34343535 if(Math.abs((a-b)/b) < 0.00001) // ¡Todavía no es correcto!
3636···7272Hay algunos casos en los que el método de arriba todavía produce resultados inesperados
7373(concretamente, es mucho más estricto cuando un valor es casi cero que cuando es
7474exactamente cero), y algunas de esas pruebas para las que fue desarrollado probablemente
7575-especifica un comportamiento que no es apropiado para algunas aplicaciones. ¡Antes de
7676-usarlo, asegúrate de que es adecuado para tu aplicación!
7575+especifica un comportamiento que no es apropiado para algunas aplicaciones. Antes de
7676+usarlo, ¡asegúrate de que es adecuado para tu aplicación!
77777878Comparando valores de punto flotante como enteros
7979-------------------------------------------------
+1-1
content/formats/integer.html
···15151616* Supone más trabajo (y más oportunidades de introducir bugs) hacerlo bien, especialmente en lo que concierne a los [métodos de redondeo](/errors/rounding/).
1717* Los enteros tienen precisión completa, pero en un rango muy limitado, y cuando se desbordan, normalmente «dan la vuelta» silenciosamente: el mayor entero más 1 da cero (para enteros sin signo) o el valor negativo más grande en valor absoluto (para enteros con signo). Este es el peor comportamiento posible cuando se trabaja con dinero por razones obvias.
1818-* El punto decimal implícito es defícil de cambiar y enormemente inflexible: si almacenas los dólares como céntimos, es simplemente imposible soportar el [dinar bareiní](http://es.wikipedia.org/wiki/Dinar_barein%C3%AD)(1 dinar = 1000 fils) al mismo tiempo. Tendrías que almacenar la posición del punto decimal con los datos - el primer paso para implementar tu propio formato de [punto flotante](/formats/fp/) decimal de precisión limitada (lleno de fallos y no estándar).
1818+* El punto decimal implícito es difícil de cambiar y enormemente inflexible: si almacenas los dólares como céntimos, es simplemente imposible soportar el [dinar bareiní](http://es.wikipedia.org/wiki/Dinar_barein%C3%AD)(1 dinar = 1000 fils) al mismo tiempo. Tendrías que almacenar la posición del punto decimal con los datos - el primer paso para implementar tu propio formato de [punto flotante](/formats/fp/) decimal de precisión limitada (lleno de fallos y no estándar).
19192020Resumen: **no se recomienda usar enteros**. Haz esto solamente si no hay otra [alternativa mejor](/formats/exact/).
+2-2
content/languages/python.html
···1414Tipos decimales
1515---------------
16161717-Python tiene un tipo de [precision arbitraria](/formats/exact/) decimal llamado
1717+Python tiene un tipo de [precisión arbitraria](/formats/exact/) decimal llamado
1818`Decimal` en el módulo `decimal`, que también permite elegir el [método de
1919redondeo](/errors/rounding/).
2020···4040 print("{:.2f}".format(1.2399))
41414242[Métodos de redondeo](/errors/rounding/) específicos y otros parámetros se pueden
4343-definir enun objeto `Context`:
4343+definir en un objeto `Context`:
44444545 getcontext().prec = 7
4646