Redondeo

Reemplazar un número por un valor más simple

Gráficos del resultado, y , de redondear x utilizando diferentes métodos. Para mayor claridad, los gráficos se muestran desplazados respecto de los valores enteros y . En el archivo SVG, pase el cursor sobre un método para resaltarlo y, en los navegadores compatibles con SMIL , haga clic para seleccionarlo o deseleccionarlo.

Redondear o redondear significa reemplazar un número por un valor aproximado que tenga una representación más corta, más simple o más explícita. Por ejemplo, reemplazar $ 23.4476 por $ 23.45 , la fracción 312/937 por 1/3 o la expresión √2 por 1.414 .

El redondeo se realiza a menudo para obtener un valor que sea más fácil de informar y comunicar que el original. El redondeo también puede ser importante para evitar una información engañosamente precisa de un número calculado, una medición o una estimación; por ejemplo, una cantidad que se calculó como 123456 pero que se sabe que es precisa solo con un margen de unos pocos cientos de unidades, normalmente se expresa mejor como "aproximadamente 123500 ".

Por otra parte, el redondeo de números exactos introducirá algún error de redondeo en el resultado informado. El redondeo es casi inevitable cuando se informan muchos cálculos, especialmente cuando se dividen dos números en aritmética de enteros o de punto fijo ; cuando se calculan funciones matemáticas como raíces cuadradas , logaritmos y senos ; o cuando se utiliza una representación de punto flotante con un número fijo de dígitos significativos . En una secuencia de cálculos, estos errores de redondeo generalmente se acumulan y, en ciertos casos mal condicionados, pueden hacer que el resultado carezca de sentido.

El redondeo preciso de funciones matemáticas trascendentales es difícil porque no se puede saber de antemano la cantidad de dígitos adicionales que se deben calcular para decidir si se debe redondear hacia arriba o hacia abajo. Este problema se conoce como "el dilema del fabricante de tablas".

El redondeo tiene muchas similitudes con la cuantificación que ocurre cuando las cantidades físicas deben codificarse mediante números o señales digitales .

A veces se utiliza un signo igual ondulado ( , aproximadamente igual a ) para indicar el redondeo de números exactos, p. ej. 9,98 ≈ 10. Este signo fue introducido por Alfred George Greenhill en 1892. [1]

Las características ideales de los métodos de redondeo incluyen:

  1. El redondeo se debe realizar mediante una función . De esta manera, cuando se redondea la misma entrada en diferentes instancias, la salida no cambia.
  2. Los cálculos realizados con redondeo deben ser similares a los realizados sin redondeo.
    • Como resultado de (1) y (2), la salida del redondeo debe ser cercana a su entrada, a menudo lo más cercana posible por alguna métrica .
  3. Para que se considere redondeo, el rango será un subconjunto del dominio , en general discreto . Un rango clásico son los números enteros, Z .
  4. El redondeo debería preservar las simetrías que ya existen entre el dominio y el rango. Con precisión finita (o un dominio discreto), esto se traduce en eliminar el sesgo .
  5. Un método de redondeo debería tener utilidad en la informática o en la aritmética humana, donde se utiliza una precisión finita y la velocidad es un factor a tener en cuenta.

Como normalmente no es posible que un método satisfaga todas las características ideales, existen muchos métodos de redondeo diferentes.

Como regla general, el redondeo es idempotente ; [2] es decir, una vez que se ha redondeado un número, redondearlo nuevamente a la misma precisión no cambiará su valor. Las funciones de redondeo también son monótonas ; es decir, redondear dos números a la misma precisión absoluta no intercambiará su orden (pero puede dar el mismo valor). En el caso general de un rango discreto, son funciones constantes por partes .

Tipos de redondeo

Los problemas de redondeo típicos incluyen:

Problema de redondeoEjemplo de entradaResultadoCriterio de redondeo
Aproximación de un número irracional mediante una fracciónπ22/7Denominador de 1 dígito
Aproximación de un número racional mediante una fracción con denominador menor399 / 9413 / 7Denominador de 1 dígito
Aproximación de una fracción mediante un número decimal fraccionario5 / 31.66674 decimales
Aproximación de un número decimal fraccionario por uno con menos dígitos2.17842.182 decimales
Aproximación de un entero decimal mediante un entero con más ceros finales23217232003 cifras significativas
Aproximación de un entero decimal grande mediante notación científica3009999993,01 × 10 83 cifras significativas
Aproximación de un valor por un múltiplo de una cantidad especificada48.245Múltiplo de 15
Aproximar cada uno de un conjunto finito de números reales mediante un entero de modo que la suma de los números redondeados sea igual a la suma redondeada de los números [nb 1]⁠ ⁠ { 3 12 , 4 12 , 5 12 } {\displaystyle {\bigl \{}{\tfrac {3}{12}},{\tfrac {4}{12}},{\tfrac {5}{12}}{\bigr \}}} {0, 0, 1}La suma de los elementos redondeados es igual a la suma redondeada de los elementos

Redondeo a número entero

La forma más básica de redondeo es reemplazar un número arbitrario por un entero. Todos los modos de redondeo siguientes son implementaciones concretas de un procedimiento abstracto "round()" de un solo argumento. Se trata de funciones verdaderas (con excepción de aquellas que utilizan aleatoriedad).

Redondeo dirigido a un número entero

Estos cuatro métodos se denominan redondeo dirigido a un número entero , ya que los desplazamientos desde el número original x hasta el valor redondeado y están todos dirigidos hacia o desde el mismo valor límite (0, +∞ o −∞). El redondeo dirigido se utiliza en aritmética de intervalos y suele ser necesario en los cálculos financieros.

Si x es positivo, redondear hacia abajo es lo mismo que redondear hacia cero, y redondear hacia arriba es lo mismo que redondear hacia afuera desde cero. Si x es negativo, redondear hacia abajo es lo mismo que redondear hacia afuera desde cero, y redondear hacia arriba es lo mismo que redondear hacia cero. En cualquier caso, si x es un número entero, y es simplemente x .

Cuando se realizan muchos cálculos en secuencia, la elección del método de redondeo puede tener un efecto muy significativo en el resultado. Un ejemplo famoso fue el de un nuevo índice creado por la Bolsa de Valores de Vancouver en 1982. Inicialmente se fijó en 1000.000 (tres decimales de precisión) y después de 22 meses había caído a aproximadamente 520, aunque el mercado parecía estar subiendo. El problema se debía a que el índice se recalculaba miles de veces al día y siempre se truncaba (redondeaba hacia abajo) a 3 decimales, de tal manera que los errores de redondeo se acumulaban. Al recalcular el índice para el mismo período utilizando el redondeo a la milésima más cercana en lugar del truncamiento, se corrigió el valor del índice de 524.811 a 1098.892. [3]

Para los ejemplos siguientes, sgn( x ) se refiere a la función de signo aplicada al número original, x .

Redondeando hacia abajo

Se puede redondear hacia abajo (o tomar el suelo , o redondear hacia el infinito negativo ): y es el entero más grande que no excede x .

y = F yo o o a ( incógnita ) = incógnita = incógnita {\displaystyle y=\mathrm {piso} (x)=\left\lpiso x\right\rpiso =-\left\lceil -x\right\rceil }

Por ejemplo, 23,7 se redondea a 23 y −23,2 se redondea a −24.

Redondeando

También se puede redondear hacia arriba (o tomar el techo , o redondear hacia el infinito positivo ): y es el entero más pequeño que no es menor que x .

y = fortificar techo ( incógnita ) = incógnita = incógnita {\displaystyle y=\operatorname {ceil} (x)=\left\lceil x\right\rceil =-\left\lfloor -x\right\rfloor }

Por ejemplo, 23,2 se redondea a 24 y −23,7 se redondea a −23.

Redondeo hacia cero

También se puede redondear hacia cero (o truncar , o redondear desde el infinito ): y es el número entero más cercano a x tal que esté entre 0 y x (incluido); es decir, y es la parte entera de x , sin sus dígitos fraccionarios.

y = truncar ( incógnita ) = signo ( incógnita ) | incógnita | = signo ( incógnita ) | incógnita | = { incógnita incógnita 0 incógnita incógnita < 0 {\displaystyle y=\operatorname {truncar} (x)=\operatorname {sgn}(x)\left\lfloor \left|x\right|\right\rfloor =-\operatorname {sgn}(x)\left\lceil -\left|x\right|\right\rceil ={\begin{cases}\left\lfloor x\right\rfloor &x\geq 0\\[5mu]\left\lceil x\right\rceil &x<0\end{cases}}}

Por ejemplo, 23,7 se redondea a 23 y −23,7 se redondea a −23.

Redondeo a partir de cero

También se puede redondear desde cero (o redondear hacia el infinito ): y es el número entero más cercano a 0 (o equivalentemente, a x ) tal que x está entre 0 e y (incluido).

y = signo ( incógnita ) | incógnita | = signo ( incógnita ) | incógnita | = { incógnita incógnita 0 incógnita incógnita < 0 {\displaystyle y=\operatorname {sgn}(x)\left\lceil \left|x\right|\right\rceil =-\operatorname {sgn}(x)\left\lfloor -\left|x\right|\right\rfloor ={\begin{cases}\left\lceil x\right\rceil &x\geq 0\\[5mu]\left\lfloor x\right\rfloor &x<0\end{cases}}}

Por ejemplo, 23,2 se redondea a 24 y −23,2 se redondea a −24.

Redondeo al entero más cercano

Estos seis métodos se denominan redondeo al entero más próximo . Para redondear un número x al entero más próximo se requiere una regla de desempate para aquellos casos en los que x está exactamente a mitad de camino entre dos enteros, es decir, cuando la parte fraccionaria de x es exactamente 0,5.

Si no fuera por las 0,5 partes fraccionarias, los errores de redondeo introducidos por el método de redondeo al más cercano serían simétricos: por cada fracción que se redondea hacia abajo (como 0,268), hay una fracción complementaria (es decir, 0,732) que se redondea hacia arriba en la misma cantidad.

Al redondear un conjunto grande de números de punto fijo con partes fraccionarias distribuidas uniformemente , los errores de redondeo de todos los valores, con la omisión de aquellos que tienen una parte fraccionaria de 0,5, se compensarían estadísticamente entre sí. Esto significa que el valor esperado (promedio) de los números redondeados es igual al valor esperado de los números originales cuando se eliminan del conjunto los números con una parte fraccionaria de 0,5.

En la práctica, normalmente se utilizan números de punto flotante , que tienen aún más matices computacionales porque no están espaciados de manera uniforme.

Redondeando la mitad hacia arriba

Se puede redondear la mitad hacia arriba (o redondear la mitad hacia el infinito positivo ), una regla de desempate que se usa ampliamente en muchas disciplinas. [ cita requerida ] Es decir, los valores intermedios de x siempre se redondean hacia arriba. Si la parte fraccionaria de x es exactamente 0,5, entonces y = x + 0,5

y = incógnita + 1 2 = incógnita 1 2 = 1 2 2 incógnita {\displaystyle y=\left\lfloor x+{\tfrac {1}{2}}\right\rfloor =-\left\lceil -x-{\tfrac {1}{2}}\right\rceil =\left\lceil {\tfrac {1}{2}}\lfloor 2x\rfloor \right\rceil }

Por ejemplo, 23,5 se redondea a 24 y −23,5 se redondea a −23.

Algunos lenguajes de programación (como Java y Python) usan "mitad arriba" para referirse a redondear la mitad alejándose de cero en lugar de redondear la mitad hacia el infinito positivo . [4] [5]

Este método solo requiere verificar un dígito para determinar la dirección de redondeo en el complemento a dos y representaciones similares.

Redondeando la mitad hacia abajo

También se puede redondear la mitad hacia abajo (o redondear la mitad hacia el infinito negativo ) en lugar de redondear la mitad hacia arriba , como es más habitual . Si la parte fraccionaria de x es exactamente 0,5, entonces y = x − 0,5

y = incógnita 1 2 = incógnita + 1 2 = 1 2 2 incógnita {\displaystyle y=\left\lceil x-{\tfrac {1}{2}}\right\rceil =-\left\lfloor -x+{\tfrac {1}{2}}\right\rfloor =\left\lfloor {\tfrac {1}{2}}\lceil 2x\rceil \right\rfloor }

Por ejemplo, 23,5 se redondea a 23 y −23,5 se redondea a −24.

Algunos lenguajes de programación (como Java y Python) utilizan "mitad hacia abajo" para referirse a redondear la mitad hacia cero en lugar de redondear la mitad hacia el infinito negativo . [4] [5]

Redondeando la mitad hacia cero

También se puede redondear la mitad hacia cero (o redondear la mitad alejándose del infinito ) en lugar de redondear la mitad alejándose del cero de manera convencional . Si la parte fraccionaria de x es exactamente 0,5, entonces y = x − 0,5 si x es positivo, e y = x + 0,5 si x es negativo.

y = signo ( incógnita ) | incógnita | 1 2 = signo ( incógnita ) | incógnita | + 1 2 {\displaystyle y=\operatorname {sgn}(x)\left\lceil \left|x\right|-{\tfrac {1}{2}}\right\rceil =-\operatorname {sgn}(x)\left\lfloor -\left|x\right|+{\tfrac {1}{2}}\right\rfloor }

Por ejemplo, 23,5 se redondea a 23 y −23,5 se redondea a −23.

Este método trata los valores positivos y negativos de manera simétrica y, por lo tanto, no tiene sesgo positivo/negativo general si los números originales son positivos o negativos con la misma probabilidad. Sin embargo, sigue teniendo sesgo hacia el cero.

Redondeo a la mitad a partir de cero

También se puede redondear la mitad a partir de cero (o redondear la mitad hacia el infinito ), una regla de desempate que se enseña y se usa comúnmente, a saber: si la parte fraccionaria de x es exactamente 0,5, entonces y = x + 0,5 si x es positivo, e y = x − 0,5 si x es negativo.

y = signo ( incógnita ) | incógnita | + 1 2 = signo ( incógnita ) | incógnita | 1 2 {\displaystyle y=\operatorname {sgn}(x)\left\lfloor \left|x\right|+{\tfrac {1}{2}}\right\rfloor =-\operatorname {sgn}(x)\left\lceil -\left|x\right|-{\tfrac {1}{2}}\right\rceil }

Por ejemplo, 23,5 se redondea a 24 y −23,5 se redondea a −24.

Esto puede ser más eficiente en computadoras que usan la representación de signo-magnitud para los valores que se van a redondear, porque solo se debe considerar el primer dígito omitido para determinar si se redondea hacia arriba o hacia abajo. Este es un método que se usa para redondear a cifras significativas debido a su simplicidad.

Este método, también conocido como redondeo comercial , [ cita requerida ] trata los valores positivos y negativos de manera simétrica y, por lo tanto, está libre de sesgo positivo/negativo general si los números originales son positivos o negativos con la misma probabilidad. Sin embargo, aún tiene sesgo que se aleja del cero.

Se utiliza a menudo para conversiones de divisas y redondeos de precios (cuando el importe se convierte primero a la subdivisión significativa más pequeña de la moneda, como céntimos de euro), ya que es fácil de explicar considerando simplemente el primer dígito fraccionario, independientemente de los dígitos de precisión suplementarios o el signo del importe (para equivalencia estricta entre el pagador y el receptor del importe).

Redondear la mitad a par

También se puede redondear la mitad a un entero par , una regla de desempate sin sesgo positivo/negativo y sin sesgo hacia/lejos de cero. Por esta convención, si la parte fraccionaria de x es 0,5, entonces y es el entero par más cercano a x . Así, por ejemplo, 23,5 se convierte en 24, al igual que 24,5; sin embargo, −23,5 se convierte en −24, al igual que −24,5. Esta función minimiza el error esperado al sumar cifras redondeadas, incluso cuando las entradas son mayoritariamente positivas o mayoritariamente negativas, siempre que no sean ni mayoritariamente pares ni mayoritariamente impares.

Esta variante del método de redondeo al más cercano también se denomina redondeo convergente , redondeo estadístico , redondeo holandés , redondeo gaussiano , redondeo par-impar , [6] o redondeo bancario . [7]

Este es el modo de redondeo predeterminado utilizado en las operaciones IEEE 754 para resultados en formatos de punto flotante binario.

Al eliminar el sesgo, la suma o resta repetida de números independientes, como en un recorrido aleatorio unidimensional , dará un resultado redondeado con un error que tiende a crecer en proporción a la raíz cuadrada del número de operaciones en lugar de hacerlo linealmente.

Sin embargo, esta regla distorsiona la distribución al aumentar la probabilidad de pares en relación con los impares. Por lo general, esto es menos importante [ cita requerida ] que los sesgos que se eliminan con este método.

Redondeo de la mitad a impar

También se puede redondear la mitad a impar , una regla de desempate similar a la de redondear la mitad a par. En este enfoque, si la parte fraccionaria de x es 0,5, entonces y es el entero impar más cercano a x . Así, por ejemplo, 23,5 se convierte en 23, al igual que 22,5; mientras que −23,5 se convierte en −23, al igual que −22,5.

Este método también está libre de sesgo positivo/negativo y de sesgo hacia/desde cero, siempre que los números que se van a redondear no sean ni mayoritariamente pares ni mayoritariamente impares. También comparte la propiedad de redondear a la mitad a pares de distorsionar la distribución original, ya que aumenta la probabilidad de impares en relación con pares. Fue el método utilizado para los saldos bancarios en el Reino Unido cuando decimalizó su moneda [8] [ aclaración necesaria ] .

Esta variante casi nunca se utiliza en los cálculos, excepto en situaciones en las que se desea evitar aumentar la escala de los números de punto flotante, que tienen un rango de exponentes limitado. Con round half to even , un número no infinito se redondearía a infinito, y un valor desnormal pequeño se redondearía a un valor normal distinto de cero. Efectivamente, este modo prefiere preservar la escala existente de números de empate, evitando resultados fuera de rango cuando sea posible para sistemas numéricos de base par (como binario y decimal). [ aclaración necesaria (ver discusión ) ] .

Redondeo para prepararse para una precisión más corta

Este modo de redondeo se utiliza para evitar obtener un resultado potencialmente erróneo después de varios redondeos. Esto se puede lograr si todos los redondeos, excepto el final, se realizan utilizando el redondeo para preparar una precisión más corta ("RPSP") y solo el redondeo final utiliza el modo solicitado externamente.

En la aritmética decimal, se evitan los dígitos finales de 0 y 5; si hay una elección entre números con el dígito menos significativo 0 o 1, 4 o 5, 5 o 6, 9 o 0, entonces se seleccionará el dígito diferente de 0 o 5; de lo contrario, la elección es arbitraria. IBM define que, en el último caso, se seleccionará un dígito con la magnitud más pequeña. [9] RPSP se puede aplicar con el paso entre dos redondeos consecutivos tan pequeños como un solo dígito (por ejemplo, se puede aplicar un redondeo a 1/10 después de un redondeo a 1/100). Por ejemplo, al redondear a un entero,

  • 20.0 se redondea a 20;
  • 20.01, 20.1, 20.9, 20.99, 21, 21.01, 21.9, 21.99 se redondean a 21;
  • 22.0, 22.1, 22.9, 22.99 se redondean a 22;
  • 24.0, 24.1, 24.9, 24.99 se redondean a 24;
  • 25,0 se redondea a 25;
  • 25.01, 25.1 se redondean a 26.

En el ejemplo de la sección "Redondeo doble", redondear 9,46 a un decimal da 9,4, que redondeado a un número entero a su vez da 9.

En aritmética binaria, este redondeo también se denomina "redondeo a impar" (no debe confundirse con "redondeo a la mitad de impar"). Por ejemplo, al redondear a 1/4 (0,01 en binario),

  • x = 2.0 ⇒ el resultado es 2 (10.00 en binario)
  • 2.0 < x < 2.5 ⇒ el resultado es 2.25 (10.01 en binario)
  • x = 2,5 ⇒ el resultado es 2,5 (10,10 en binario)
  • 2,5 < x < 3,0 ⇒ el resultado es 2,75 (10,11 en binario)
  • x = 3.0 ⇒ el resultado es 3 (11.00 en binario)

Para obtener resultados correctos, cada paso de redondeo debe eliminar al menos 2 dígitos binarios; de lo contrario, pueden aparecer resultados erróneos. Por ejemplo,

  • 3,125 RPSP a 1/4 ⇒ el resultado es 3,25
  • 3,25 RPSP a 1/2 ⇒ el resultado es 3,5
  • 3,5 redondeado, medio o par a 1 ⇒ el resultado es 4 (incorrecto)

Si se elimina el paso intermedio erróneo, el redondeo final a número entero redondea 3,25 al valor correcto de 3.

RPSP está implementado en hardware en IBM zSeries y pSeries .

Redondeo aleatorio a un número entero

Desempate alterno

Un método, más oscuro que la mayoría, es alternar la dirección al redondear un número con una parte fraccionaria de 0,5. Todos los demás se redondean al entero más cercano. Siempre que la parte fraccionaria sea 0,5, alterna el redondeo hacia arriba o hacia abajo: para la primera aparición de una parte fraccionaria de 0,5, redondea hacia arriba, para la segunda aparición, redondea hacia abajo, y así sucesivamente. Alternativamente, el primer redondeo de la parte fraccionaria de 0,5 se puede determinar mediante una semilla aleatoria . "Hacia arriba" y "hacia abajo" pueden ser dos métodos de redondeo opuestos entre sí: hacia y desde el infinito positivo o hacia y desde el cero.

Si las ocurrencias de 0,5 fracciones se dan con una frecuencia significativamente mayor que la de un reinicio del "conteo" de ocurrencias, entonces está efectivamente libre de sesgo. Con un sesgo cero garantizado, es útil si se deben sumar o promediar los números.

Desempate aleatorio

Si la parte fraccionaria de x es 0,5, se elige y al azar entre x + 0,5 y x − 0,5 , con la misma probabilidad. Todos los demás se redondean al número entero más cercano.

Al igual que la regla de redondeo a par y la de redondeo a impar, esta regla está esencialmente libre de sesgos generales, pero también es justa entre valores y pares e impares . Una ventaja sobre el desempate alternativo es que no es necesario "recordar" la última dirección de redondeo en la parte fraccionaria de 0,5.

Redondeo estocástico

El redondeo de la siguiente manera a uno de los números enteros más cercanos hacia el infinito negativo y el número entero más cercano hacia el infinito positivo, con una probabilidad que depende de la proximidad, se denomina redondeo estocástico y dará un resultado imparcial en promedio. [10]

Redondo ( incógnita ) = { incógnita  with probability  1 ( x x ) = x x + 1 x + 1  with probability  x x {\displaystyle \operatorname {Round} (x)={\begin{cases}\lfloor x\rfloor &{\text{ with probability }}1-(x-\lfloor x\rfloor )=\lfloor x\rfloor -x+1\\[5mu]\lfloor x\rfloor +1&{\text{ with probability }}{x-\lfloor x\rfloor }\end{cases}}}

Por ejemplo, 1,6 se redondearía a 1 con probabilidad 0,4 y a 2 con probabilidad 0,6.

El redondeo estocástico puede ser preciso de una manera que una función de redondeo nunca puede serlo. Por ejemplo, supongamos que uno comenzó con 0 y agregó 0,3 a eso cien veces mientras redondeaba el total acumulado entre cada adición. El resultado sería 0 con el redondeo regular, pero con el redondeo estocástico, el resultado esperado sería 30, que es el mismo valor obtenido sin redondeo. Esto puede ser útil en el aprendizaje automático donde el entrenamiento puede usar aritmética de baja precisión de forma iterativa. [10] El redondeo estocástico también es una forma de lograr tramado unidimensional .

Comparación de enfoques para redondear a un número entero

ValorMétodos funcionalesMétodos aleatorios
Redondeo dirigidoRedondear al más cercanoRonda para preparar precisión más cortaDesempate alternoDesempate aleatorioEstocástico
Abajo
(hacia − )
Arriba
(hacia + )
Hacia 0Lejos de 0Mitad abajo
(hacia − )
Mitad arriba
(hacia + )
La mitad hacia 0A medio camino de 0De la mitad a la parDe la mitad a lo imparPromedioDAKOTA DEL SURPromedioDAKOTA DEL SURPromedioDAKOTA DEL SUR
+2.8+2+3+2+3+3+3+3+3+3+3+2+30+30+2.80,04
+2.5+2+2+2+2.5050+2.50,05+2.50,05
+2.2+2+2+2+20+20+2.20,04
+1.8+1+2+1+2+1+1.80,04
+1.5+1+1+1+1.5050+1.50,05+1.50,05
+1.2+1+1+1+10+10+1.20,04
+0,80+10+1+0,80,04
+0,5000+0,5050+0,50,05+0,50,05
+0,20000000+0,20,04
-0,2-10-1-1-0,20,04
-0,5-1-1-1-0,4950-0,50,05-0,50,05
-0,8-1-1-1-10-10-0,80,04
-1,2-2-1-1-2-1,20,04
-1,5-2-2-2-1,4950-1,50,05-1,50,05
-1,8-2-2-2-20-20-1,80,04
-2,2-3-2-2-3-2-2,20,04
-2,5-3-3-3-2,4950-2,50,05-2,50,05
-2,8-3-3-3-30-30-2,80,04

Redondeo a otros valores

Redondeo a un múltiplo especificado

El tipo de redondeo más común es redondear a un número entero; o, más generalmente, a un múltiplo entero de algún incremento, como redondear a décimas enteras de segundo, centésimas de dólar, a múltiplos enteros de 1/2 o 1/8 de pulgada, a docenas o millares enteros, etc.

En general, redondear un número x a un múltiplo de un valor positivo especificado m implica los siguientes pasos:

r o u n d T o M u l t i p l e ( x , m ) = r o u n d ( x / m ) × m {\displaystyle \mathrm {roundToMultiple} (x,m)=\mathrm {round} (x/m)\times m}

Por ejemplo, redondear x = 2,1784 dólares a centavos enteros (es decir, a un múltiplo de 0,01) implica calcular 2,1784 / 0,01 = 217,84 , luego redondearlo a 218 y, finalmente, calcular 218 × 0,01 = 2,18 .

Al redondear a un número predeterminado de dígitos significativos , el incremento m depende de la magnitud del número a redondear (o del resultado redondeado).

El incremento m es normalmente una fracción finita en cualquier sistema numérico que se utilice para representar los números. Para la visualización a los humanos, eso suele significar el sistema numérico decimal (es decir, m es un entero multiplicado por una potencia de 10, como 1/1000 o 25/100). Para los valores intermedios almacenados en computadoras digitales, a menudo significa el sistema numérico binario ( m es un entero multiplicado por una potencia de 2).

La función abstracta de un solo argumento "round()" que devuelve un entero a partir de un valor real arbitrario tiene al menos una docena de definiciones concretas distintas presentadas en la sección de redondeo a entero. La función abstracta de dos argumentos "roundToMultiple()" se define formalmente aquí, pero en muchos casos se utiliza con el valor implícito m = 1 para el incremento y luego se reduce a la función abstracta equivalente de un solo argumento, con también la misma docena de definiciones concretas distintas.

Redondeo logarítmico

Redondeo a una potencia especificada

Redondear a una potencia específica es muy diferente de redondear a un múltiplo específico ; por ejemplo, es común en informática tener que redondear un número a una potencia entera de 2. Los pasos, en general, para redondear un número positivo x a una potencia de algún número positivo b distinto de 1, son:

r o u n d T o P o w e r ( x , b ) = b r o u n d ( log b x ) , x > 0 , b > 0 , b 1 {\displaystyle \mathrm {roundToPower} (x,b)=b^{\mathrm {round} (\log _{b}x)},x>0,b>0,b\neq 1}

Muchas de las advertencias aplicables al redondeo a un múltiplo son aplicables al redondeo a una potencia.

Redondeo escalado

Este tipo de redondeo, que también se denomina redondeo a escala logarítmica , es una variante del redondeo a una potencia específica. El redondeo a escala logarítmica se logra tomando el logaritmo de la cantidad y haciendo un redondeo normal al valor más cercano en la escala logarítmica.

Por ejemplo, las resistencias se suministran con números preferidos en una escala logarítmica. En particular, para resistencias con una precisión del 10%, se suministran con valores nominales 100, 120, 150, 180, 220, etc. redondeados a múltiplos de 10 ( serie E12 ). Si un cálculo indica que se requiere una resistencia de 165 ohmios, entonces log(150) = 2,176 , log(165) = 2,217 y log(180) = 2,255 . El logaritmo de 165 está más cerca del logaritmo de 180, por lo tanto, una resistencia de 180 ohmios sería la primera opción si no hay otras consideraciones.

El hecho de que un valor x ∈ ( a , b ) se redondee a a o b depende de si el valor al cuadrado x 2 es mayor o menor que el producto ab . El valor 165 se redondea a 180 en el ejemplo de las resistencias porque 165 2 = 27225 es mayor que 150 × 180 = 27000 .

Redondeo de coma flotante

En aritmética de punto flotante , el redondeo tiene como objetivo convertir un valor x dado en un valor y con una cantidad específica de dígitos significativos . En otras palabras, y debe ser un múltiplo de un número m que depende de la magnitud de x . El número m es una potencia de la base (generalmente 2 o 10) de la representación de punto flotante.

Aparte de este detalle, todas las variantes de redondeo analizadas anteriormente se aplican también al redondeo de números de punto flotante. El algoritmo para dicho redondeo se presenta en la sección Redondeo escalado anterior, pero con un factor de escala constante s = 1 y una base entera b > 1 .

Cuando el resultado redondeado se desborda, el resultado de un redondeo dirigido es el infinito con signo apropiado cuando se "redondea a partir de cero", o el número finito positivo representable más alto (o el número finito negativo representable más bajo si x es negativo), cuando se "redondea hacia cero". El resultado de un desbordamiento para el caso habitual de redondeo al más cercano es siempre el infinito apropiado.

Redondeo a una fracción simple

En algunos contextos es deseable redondear un número dado x a una fracción "ordenada", es decir, la fracción más próxima y = m / n cuyo numerador m y denominador n no excedan un máximo dado. Este problema es bastante distinto del de redondear un valor a un número fijo de dígitos decimales o binarios, o a un múltiplo de una unidad dada m . Este problema está relacionado con las sucesiones de Farey , el árbol de Stern-Brocot y las fracciones continuas .

Redondeo a un valor disponible

La madera terminada , el papel para escribir, los condensadores y muchos otros productos generalmente se venden solo en unos pocos tamaños estándar.

Muchos procedimientos de diseño describen cómo calcular un valor aproximado y luego "redondearlo" a un tamaño estándar utilizando frases como "redondear hacia abajo al valor estándar más cercano", "redondear hacia arriba al valor estándar más cercano" o "redondear al valor estándar más cercano". [11] [12]

Cuando un conjunto de valores preferidos está espaciado de forma uniforme en una escala logarítmica, la elección del valor preferido más cercano a cualquier valor dado puede considerarse como una forma de redondeo a escala. Dichos valores redondeados pueden calcularse directamente. [13]

Contenedores arbitrarios

Las reglas de redondeo más generales pueden separar valores en puntos de corte arbitrarios, que se utilizan, por ejemplo, en la clasificación de datos . Una herramienta matemáticamente formalizada relacionada son las secuencias de postes indicadores , que utilizan nociones de distancia distintas de la simple diferencia; por ejemplo, una secuencia puede redondearse al número entero con el menor error relativo (porcentaje).

Redondeo en otros contextos

Difuminación y difusión de errores

Al digitalizar señales continuas , como las ondas sonoras, el efecto global de una serie de mediciones es más importante que la precisión de cada medición individual. En estas circunstancias, normalmente se utiliza el dithering y una técnica relacionada, la difusión de errores . Una técnica relacionada denominada modulación por ancho de pulso se utiliza para lograr una salida de tipo analógico a partir de un dispositivo inercial pulsando rápidamente la potencia con un ciclo de trabajo variable.

La difusión de errores intenta garantizar que el error, en promedio, se minimice. Cuando se trabaja con una pendiente suave de uno a cero, el resultado sería cero para los primeros términos hasta que la suma del error y el valor actual sea mayor que 0,5, en cuyo caso se obtiene un 1 y la diferencia se resta del error hasta el momento. El tramado de Floyd-Steinberg es un procedimiento de difusión de errores popular al digitalizar imágenes.

Como ejemplo unidimensional, supongamos que los números 0,9677 , 0,9204 , 0,7451 y 0,3091 aparecen en orden y que cada uno de ellos se debe redondear a un múltiplo de 0,01 . En este caso, las sumas acumuladas, 0,9677 , 1,8881 = 0,9677 + 0,9204 , 2,6332 = 0,9677 + 0,9204 + 0,7451 y 2,9423 = 0,9677 + 0,9204 + 0,7451 + 0,3091 , se redondean cada una a un múltiplo de 0,01 : 0,97 , 1,89 , 2,63 y 2,94 . El primero de estos y las diferencias de valores adyacentes dan los valores redondeados deseados: 0,97 , 0,92 = 1,89 − 0,97 , 0,74 = 2,63 − 1,89 y 0,31 = 2,94 − 2,63 .

Aritmética de Monte Carlo

La aritmética de Monte Carlo es una técnica de los métodos de Monte Carlo en la que el redondeo se realiza de forma aleatoria hacia arriba o hacia abajo. El redondeo estocástico se puede utilizar para la aritmética de Monte Carlo, pero en general, se utiliza con más frecuencia el redondeo hacia arriba o hacia abajo con la misma probabilidad. Las ejecuciones repetidas darán una distribución aleatoria de resultados que puede indicar la estabilidad del cálculo. [14]

Cálculo exacto con aritmética redondeada

Es posible utilizar la aritmética redondeada para evaluar el valor exacto de una función con dominio y rango enteros. Por ejemplo, si se sabe que un entero n es un cuadrado perfecto, su raíz cuadrada se puede calcular convirtiendo n en un valor de punto flotante z , calculando la raíz cuadrada aproximada x de z con punto flotante y luego redondeando x al entero más cercano y . Si n no es demasiado grande, el error de redondeo de punto flotante en x será menor que 0,5, por lo que el valor redondeado y será la raíz cuadrada exacta de n . Esta es esencialmente la razón por la que las reglas de cálculo podrían usarse para la aritmética exacta.

Doble redondeo

No se garantiza que redondear un número dos veces seguidas a diferentes niveles de precisión, siendo la última precisión más burda, dé el mismo resultado que redondearlo una vez a la precisión final, excepto en el caso del redondeo dirigido. [nb 2] Por ejemplo, redondear 9,46 a un decimal da 9,5, y luego 10 cuando se redondea a un entero utilizando el redondeo de la mitad a par, pero daría 9 cuando se redondea a un entero directamente. Borman y Chatfield [15] analizan las implicaciones del doble redondeo al comparar datos redondeados a un decimal con límites de especificación expresados ​​utilizando números enteros.

En los casos Martinez v. Allstate y Sendejo v. Farmers , litigados entre 1995 y 1997, las compañías de seguros argumentaron que las primas redondeadas dobles eran permisibles y, de hecho, obligatorias. Los tribunales estadounidenses fallaron en contra de las compañías de seguros y les ordenaron adoptar normas para garantizar el redondeo simple. [16]

Algunos lenguajes de programación y el estándar IEEE 754-2008 dictan que en cálculos sencillos el resultado no debe redondearse dos veces. Esto ha sido un problema particular con Java, ya que está diseñado para ejecutarse de manera idéntica en diferentes máquinas; se han tenido que usar trucos de programación especiales para lograr esto con el punto flotante x87 . [17] [18] El lenguaje Java se modificó para permitir diferentes resultados donde la diferencia no importa y requiere que se use un calificador strictfp cuando los resultados deben cumplir con precisión; el punto flotante estricto se ha restaurado en Java 17. [19]

En algunos algoritmos, un resultado intermedio se calcula con una precisión mayor y luego se debe redondear a la precisión final. El doble redondeo se puede evitar eligiendo un redondeo adecuado para el cálculo intermedio. Esto consiste en evitar redondear a puntos medios para el redondeo final (excepto cuando el punto medio es exacto). En aritmética binaria, la idea es redondear el resultado hacia cero y establecer el bit menos significativo en 1 si el resultado redondeado es inexacto; este redondeo se llama redondeo pegajoso . [20] De manera equivalente, consiste en devolver el resultado intermedio cuando es exactamente representable y el número de punto flotante más cercano con un significando impar en caso contrario; por eso también se lo conoce como redondeo a impar . [21] [22] Una implementación concreta de este enfoque, para aritmética binaria y decimal, se implementa como Redondeo para prepararse para una precisión más corta.

El dilema del fabricante de mesas

William M. Kahan acuñó el término "El dilema del fabricante de tablas" para el costo desconocido de redondear funciones trascendentales :

Nadie sabe cuánto costaría calcular y w correctamente redondeado para cada dos argumentos de punto flotante en los que no se produzca un desbordamiento o desbordamiento. En cambio, las bibliotecas matemáticas de confianza calculan funciones trascendentales elementales en su mayoría dentro de un poco más de la mitad de un ulp y casi siempre dentro de un ulp. ¿Por qué no se puede redondear y w dentro de la mitad de un ulp como SQRT? Porque nadie sabe cuánto costaría el cálculo... No existe una forma general de predecir cuántos dígitos adicionales se tendrán que llevar para calcular una expresión trascendental y redondearla correctamente a un número preasignado de dígitos. Incluso el hecho (si es cierto) de que un número finito de dígitos adicionales será finalmente suficiente puede ser un teorema profundo. [23]

El estándar de punto flotante IEEE 754 garantiza que la suma, resta, multiplicación, división, multiplicación-suma fusionada , raíz cuadrada y resto de punto flotante darán el resultado correctamente redondeado de la operación de precisión infinita. No se dio tal garantía en el estándar de 1985 para funciones más complejas y, en el mejor de los casos, estas funciones solo son precisas hasta el último bit. Sin embargo, el estándar de 2008 garantiza que las implementaciones conformes darán resultados correctamente redondeados que respeten el modo de redondeo activo; sin embargo, la implementación de las funciones es opcional.

Utilizando el teorema de Gelfond-Schneider y el teorema de Lindemann-Weierstrass , se puede demostrar que muchas de las funciones elementales estándar devuelven resultados trascendentales , excepto en algunos argumentos bien conocidos; por lo tanto, desde un punto de vista teórico, siempre es posible redondear correctamente tales funciones. Sin embargo, para una implementación de dicha función, determinar un límite para una precisión dada sobre cómo se deben calcular los resultados exactos, antes de que se pueda garantizar un resultado correctamente redondeado, puede demandar mucho tiempo de cálculo o puede estar fuera de alcance. [24] En la práctica, cuando este límite no se conoce (o solo se conoce un límite muy grande), se debe tomar alguna decisión en la implementación (ver más abajo); pero de acuerdo con un modelo probabilístico, el redondeo correcto se puede satisfacer con una probabilidad muy alta cuando se usa una precisión intermedia de hasta el doble del número de dígitos del formato de destino más alguna pequeña constante (después de tomar en cuenta casos especiales).

Algunos paquetes de programación ofrecen un redondeo correcto. El paquete GNU MPFR ofrece resultados de precisión arbitraria correctamente redondeados. Otras bibliotecas implementan funciones elementales con redondeo correcto en precisión doble IEEE 754 (binary64):

  • La biblioteca ml4j de IBM , que significa Mathematical Library for Java , escrita por Abraham Ziv y Moshe Olshansky en 1999, redondeó correctamente solo al más cercano. [25] [26] Se afirmó que esta biblioteca era portátil, pero solo se proporcionaron binarios para PowerPC / AIX , SPARC / Solaris y x86 / Windows NT . Según su documentación, esta biblioteca utiliza un primer paso con una precisión un poco mayor que la precisión doble, un segundo paso basado en aritmética doble-doble y un tercer paso con una precisión de 768 bits basada en matrices de números de punto flotante de precisión doble IEEE 754.
  • Biblioteca matemática portátil Accurate de IBM (abreviada como APMathLib o simplemente MathLib), [27] [28] también llamada libultim, [29] solo para redondear al valor más cercano. Esta biblioteca utiliza hasta 768 bits de precisión de trabajo. Se incluyó en la biblioteca C de GNU en 2001, [30] pero los "caminos lentos" (que proporcionan un redondeo correcto) se eliminaron de 2018 a 2021.
  • CRlibm, escrito en el antiguo equipo Arénaire (LIP, ENS Lyon ), distribuido por primera vez en 2003. [31] Admite los 4 modos de redondeo y está probado utilizando el conocimiento de los casos más difíciles de redondear. [32] [33] Más eficiente que IBM MathLib. [34] Sucedido por Metalibm (2014), que automatiza las pruebas formales. [35]
  • Libmcr de Sun Microsystems de 2004, en los 4 modos de redondeo. [36] [37] Para los casos difíciles, esta biblioteca también utiliza precisión múltiple, y el número de palabras se incrementa en 2 cada vez que ocurre el dilema del creador de tablas (con un comportamiento indefinido en el caso muy improbable de que se alcance algún límite de la máquina).
  • El proyecto CORE-MATH (2022) proporciona algunas funciones correctamente redondeadas en los 4 modos de redondeo para procesadores x86-64 . Se ha demostrado utilizando el conocimiento de los casos más difíciles de redondear. [38] [34]
  • La libc LLVM proporciona algunas funciones redondeadas correctamente en los 4 modos de redondeo. [39]

Existen números computables para los cuales nunca se puede determinar un valor redondeado, sin importar cuántos dígitos se calculen. No se pueden dar casos específicos, pero esto se deduce de la indecidibilidad del problema de detención . Por ejemplo, si la conjetura de Goldbach es verdadera pero no demostrable , entonces no se puede determinar el resultado de redondear el siguiente valor, n , hasta el siguiente entero: o n = 1 + 10 k donde k es el primer número par mayor que 4 que no es la suma de dos primos, o n = 1 si no existe tal número. El resultado redondeado es 2 si existe tal número k y 1 en caso contrario. Sin embargo, el valor antes del redondeo se puede aproximar a cualquier precisión dada incluso si la conjetura es indemostrable.

Interacción con búsquedas de cadenas

El redondeo puede afectar negativamente a la búsqueda de una cadena de caracteres para un número. Por ejemplo, π redondeado a cuatro dígitos es "3,1416", pero una búsqueda simple de esta cadena no descubrirá "3,14159" ni ningún otro valor de π redondeado a más de cuatro dígitos. Por el contrario, el truncamiento no sufre este problema; por ejemplo, una búsqueda simple de la cadena "3,1415", que es π truncado a cuatro dígitos, descubrirá valores de π truncados a más de cuatro dígitos.

Historia

El concepto de redondeo es muy antiguo, tal vez más antiguo que el concepto de división en sí. Algunas tablillas de arcilla antiguas encontradas en Mesopotamia contienen tablas con valores redondeados de recíprocos y raíces cuadradas en base 60. [40] Las aproximaciones redondeadas a π , la duración del año y la duración del mes también son antiguas; véanse los ejemplos de base 60 .

El método de redondeo a la mitad hasta el par ha servido como estándar estadounidense Z25.1 y estándar ASTM E-29 desde 1940. [41] El origen de los términos redondeo imparcial y redondeo estadístico se explica por sí solo. En la cuarta edición de 1906 de Probability and Theory of Errors, Robert Simpson Woodward lo llamó "la regla de la computadora", [42] indicando que entonces era de uso común por parte de las computadoras humanas que calculaban tablas matemáticas. Por ejemplo, fue recomendado en el libro de Simon Newcomb de alrededor de 1882 Logarithmic and Other Mathematical Tables . [43] La Teoría de las mediciones de Lucius Tuttle de 1916 lo llamó una "regla universalmente adoptada" para registrar mediciones físicas. [44] Churchill Eisenhart indicó que la práctica ya estaba "bien establecida" en el análisis de datos en la década de 1940. [45]

El origen del término "redondeo bancario" sigue siendo más oscuro. Si este método de redondeo fue alguna vez una norma en banca, la evidencia ha resultado extremadamente difícil de encontrar. Por el contrario, la sección 2 del informe de la Comisión Europea La introducción del euro y el redondeo de importes monetarios [46] sugiere que anteriormente no había habido un enfoque estándar para el redondeo en banca y especifica que los importes "a mitad de camino" deben redondearse hacia arriba.

Hasta la década de 1980, el método de redondeo utilizado en la aritmética informática de punto flotante solía estar fijado por el hardware, mal documentado, inconsistente y diferente para cada marca y modelo de computadora. Esta situación cambió después de que la mayoría de los fabricantes de computadoras adoptaran el estándar de punto flotante IEEE 754. El estándar permite al usuario elegir entre varios modos de redondeo y, en cada caso, especifica con precisión cómo deben redondearse los resultados. Estas características hicieron que los cálculos numéricos fueran más predecibles e independientes de la máquina, y posibilitaron la implementación eficiente y consistente de la aritmética de intervalos .

Actualmente, muchas investigaciones tienden a redondear a múltiplos de 5 o 2. Por ejemplo, Jörg Baten utilizó el método de agrupamiento por edad en muchos estudios para evaluar el nivel de alfabetización de las poblaciones antiguas. Él ideó el índice ABCC , que permite la comparación de la alfabetización entre regiones sin necesidad de fuentes históricas donde se haya medido la alfabetización de la población . [47]

Funciones de redondeo en lenguajes de programación

La mayoría de los lenguajes de programación proporcionan funciones o sintaxis especial para redondear números fraccionarios de diversas maneras. Los primeros lenguajes numéricos, como FORTRAN y C , proporcionaban solo un método, generalmente el truncamiento (hacia cero). Este método predeterminado podía estar implícito en ciertos contextos, como al asignar un número fraccionario a una variable entera o al usar un número fraccionario como índice de una matriz . Otros tipos de redondeo debían programarse explícitamente; por ejemplo, el redondeo de un número positivo al entero más cercano podía implementarse sumando 0,5 y truncando.

En las últimas décadas, sin embargo, la sintaxis y las bibliotecas estándar de la mayoría de los lenguajes han proporcionado comúnmente al menos las cuatro funciones básicas de redondeo (arriba, abajo, al más cercano y hacia cero). El método de desempate puede variar según el lenguaje y la versión o puede ser seleccionable por el programador. Varios lenguajes siguen el ejemplo del estándar de punto flotante IEEE 754 y definen estas funciones como tomar un argumento flotante de doble precisión y devolver el resultado del mismo tipo, que luego puede convertirse en un entero si es necesario. Este enfoque puede evitar desbordamientos espurios porque los tipos de punto flotante tienen un rango más grande que los tipos enteros. Algunos lenguajes, como PHP , proporcionan funciones que redondean un valor a un número especificado de dígitos decimales (por ejemplo, de 4321.5678 a 4321.57 o 4300). Además, muchos lenguajes proporcionan una función de formato de cadena printf o similar, que permite convertir un número fraccionario en una cadena, redondeada a un número especificado por el usuario de lugares decimales (la precisión ). Por otro lado, el truncamiento (redondeo a cero) sigue siendo el método de redondeo predeterminado utilizado por muchos idiomas, especialmente para la división de dos valores enteros.

Por el contrario, CSS y SVG no definen ninguna precisión máxima específica para números y medidas, que tratan y exponen en su DOM y en su interfaz IDL como cadenas como si tuvieran precisión infinita , y no discriminan entre números enteros y valores de punto flotante; sin embargo, las implementaciones de estos lenguajes normalmente convertirán estos números en valores de punto flotante de doble precisión IEEE 754 antes de exponer los dígitos calculados con una precisión limitada (notablemente dentro de los enlaces de interfaz estándar de JavaScript o ECMAScript [48] ).

Otras normas de redondeo

Algunas disciplinas o instituciones han emitido normas o directivas para el redondeo.

Observaciones meteorológicas de EE.UU.

En una directriz emitida a mediados de 1966, [49] la Oficina del Coordinador Federal de Meteorología de los Estados Unidos determinó que los datos meteorológicos debían redondearse al número redondo más cercano, con la regla de desempate de "redondear a la mitad hacia arriba". Por ejemplo, 1,5 redondeado a un número entero debería convertirse en 2, y −1,5 debería convertirse en −1. Antes de esa fecha, la regla de desempate era "redondear a la mitad desde cero".

Cero negativo en meteorología

Algunos meteorólogos pueden escribir "−0" para indicar una temperatura entre 0,0 y −0,5 grados (exclusivamente) que se redondeó a un número entero. Esta notación se utiliza cuando el signo negativo se considera importante, sin importar cuán pequeña sea la magnitud; por ejemplo, al redondear temperaturas en la escala Celsius , donde por debajo de cero indica congelamiento. [ cita requerida ]

Véase también

Notas

  1. ^ Esto es necesario, por ejemplo, [1] para la distribución de escaños , implementada, por ejemplo, mediante el método del resto más grande ( véase Matemáticas de distribución ), y [2] para distribuir el IVA total de una factura entre sus artículos).
  2. ^ Un caso en el que el redondeo doble siempre conduce al mismo valor que el redondeo directo a la precisión final es cuando el radio es impar.

Referencias

  1. ^ Isaiah Lankham, Bruno Nachtergaele , Anne Schilling : Álgebra lineal como introducción a las matemáticas abstractas. World Scientific, Singapur 2016, ISBN  978-981-4730-35-8 , pág. 186.
  2. ^ Kulisch, Ulrich W. (julio de 1977). "Fundamentos matemáticos de la aritmética informática". IEEE Transactions on Computers . C-26 (7): 610–621. doi :10.1109/TC.1977.1674893. S2CID  35883481.
  3. ^ Higham, Nicholas John (2002). Precisión y estabilidad de algoritmos numéricos (2.ª ed.). pág. 54. doi :10.1137/1.9780898718027.ch2. ISBN 978-0-89871-521-7.
    Nievergelt, Yves (2000). "Errores de redondeo para rebajar sus acciones". Revista de matemáticas . 73 (1): 47–48. doi :10.1080/0025570X.2000.11996800. JSTOR  2691491.
    Quinn, Kevin (8 de noviembre de 1983). "¿Alguna vez ha tenido problemas para redondear cifras? Esta bolsa de valores sí los tiene" (PDF) . Wall Street Journal .
    Lilley, Wayne (29 de noviembre de 1983). "El índice bursátil de Vancouver por fin tiene la cifra correcta" (PDF) . The Toronto Star .
  4. ^ ab "java.math.RoundingMode". Oracle.
  5. ^ ab "decimal – Aritmética decimal de punto fijo y punto flotante". Python Software Foundation.
  6. ^ Manual de normas de dibujo técnico (NASA), X-673-64-1F, pág. 90
  7. ^ Abbs, Brian; Barker, Chris; Freebairn, Ingrid (2003). Postcards 4 Language Booster: Workbook with Grammar Builder . Pearson Education. pág. 85. ISBN 0-13-093904-8El redondeo al número par más cercano también se denomina "redondeo bancario" porque los bancos también utilizan esta técnica.
    Guía del usuario del compilador Microsoft Pascal para el sistema operativo MS-DOS . Microsoft Corporation. 1985. pág. 165. El redondeo bancario se utiliza para truncar números reales que terminan en 0,5; es decir, los números impares se redondean hacia arriba a un entero par, los números pares se redondean hacia abajo a un entero par.
  8. ^ Anexo 1 de la Ley de Moneda Decimal de 1969
  9. ^ Principios de funcionamiento de IBM z/Architecture
  10. ^ ab Gupta, Suyog; Angrawl, Ankur; Gopalakrishnan, Kailash; Narayanan, pritish (9 de febrero de 2016). "Aprendizaje profundo con precisión numérica limitada". pag. 3. arXiv : 1502.02551 [cs.LG].
  11. ^ "Reguladores de voltaje con diodo Zener" (PDF) . Archivado (PDF) desde el original el 2011-07-13 . Consultado el 2010-11-24 .
  12. ^ "Construye un probador de espejos"
  13. ^ Bruce Trump, Christine Schneider. "La fórmula de Excel calcula los valores estándar de resistencias del 1%". Diseño electrónico , 21 de enero de 2002. [1]
  14. ^ Parker, D. Stott; Eggert, Paul R.; Pierce, Brad (28 de marzo de 2000). "Aritmética de Monte Carlo: un marco para el análisis estadístico de errores de redondeo". IEEE Computation in Science and Engineering.
  15. ^ Borman, Phil; Chatfield, Marion (10 de noviembre de 2015). "Evite los peligros de utilizar datos redondeados". Revista de análisis farmacéutico y biomédico . 115 : 506–507. doi :10.1016/j.jpba.2015.07.021. PMID  26299526.
  16. ^ Deborah R. Hensler (2000). Dilemas de la demanda colectiva: la búsqueda de objetivos públicos para obtener beneficios privados . RAND. págs. 255-293. ISBN. 0-8330-2601-1.
  17. ^ Samuel A. Figueroa (julio de 1995). "¿Cuándo es inocuo el doble redondeo?". Boletín ACM SIGNUM . 30 (3). ACM: 21–25. doi : 10.1145/221332.221334 . S2CID  14829295.
  18. ^ Roger Golliver (octubre de 1998). "Producción eficiente de resultados IEEE dobles ortogonales predeterminados utilizando hardware IEEE extendido" (PDF) . Intel.
  19. ^ Darcy, Joseph D. "JEP 306: Restaurar la semántica de punto flotante siempre estricta" . Consultado el 12 de septiembre de 2021 .
  20. ^ Moore, J. Strother; Lynch, Tom; Kaufmann, Matt (1996). "Una prueba mecánicamente comprobada de la corrección del núcleo del algoritmo de división de punto flotante AMD5K86" (PDF) . IEEE Transactions on Computers . 47 . CiteSeerX 10.1.1.43.3309 . doi :10.1109/12.713311 . Consultado el 2 de agosto de 2016 . 
  21. ^ Boldo, Sylvie ; Melquiond, Guillaume (2008). "Emulación de un FMA y sumas correctamente redondeadas: algoritmos probados utilizando el redondeo a impar" (PDF) . IEEE Transactions on Computers . 57 (4): 462–471. doi :10.1109/TC.2007.70819. S2CID  1850330 . Consultado el 2 de agosto de 2016 .
  22. ^ "21718 – El redondeo de real.c no es perfecto". gcc.gnu.org .
  23. ^ Kahan, William Morton . "Un logaritmo demasiado inteligente" . Consultado el 14 de noviembre de 2008 .
  24. ^ Müller, Jean-Michel; Brisebarre, Nicolás; de Dinechin, Florent; Jeannerod, Claude-Pierre; Lefèvre, Vicente; Melquiond, Guillaume; Revol, Nathalie ; Stehlé, Damián; Torres, Serge (2010). "Capítulo 12: Resolver el dilema del fabricante de mesas". Manual de aritmética de coma flotante (1 ed.). Birkhäuser . doi :10.1007/978-0-8176-4705-6. ISBN 978-0-8176-4704-9. Número de serie LCCN  2009939668.
  25. ^ "NA Digest Sunday, April 18, 1999 Volume 99 : Issue 16" (Digest de NA del domingo 18 de abril de 1999, volumen 99: número 16). 18 de abril de 1999. Consultado el 29 de agosto de 2022 .
  26. ^ "Biblioteca matemática para Java". Archivado desde el original el 8 de mayo de 1999.
  27. ^ "Biblioteca matemática portátil precisa". Archivado desde el original el 7 de febrero de 2005.
  28. ^ mathlib en GitHub .
  29. ^ "libultim – la biblioteca definitiva de funciones elementales correctamente redondeadas". Archivado desde el original el 1 de marzo de 2021.
  30. ^ "Git - glibc.git/commit". Sourceware.org . Consultado el 18 de julio de 2022 .
  31. ^ de Dinechin, Florent; Lauter, Christoph; Muller, Jean-Michel (enero-marzo de 2007). "Logaritmos rápidos y correctamente redondeados en doble precisión". RAIRO-Theor. Inf. Appl . 41 (1): 85–102. CiteSeerX 10.1.1.106.6652 . doi :10.1051/ita:2007003. HAL  ensl-00000007v2. 
  32. ^ "CRlibm – Biblioteca matemática correctamente redondeada". Archivado desde el original el 27 de octubre de 2016.
  33. ^ crlibm en GitHub
  34. ^ ab Sibidanov, Alexei; Zimmermann, Paul; Glondu, Stéphane (2022). El proyecto CORE-MATH. 29.º Simposio IEEE sobre aritmética informática (ARITH 2022) . Consultado el 30 de agosto de 2022 .
  35. ^ Kupriianova, Olga; Lauter, Christoph (2014). Metalibm: un generador de códigos de funciones matemáticas. Software matemático – ICMS 2014. Vol. 8592. págs. 713–717. doi :10.1007/978-3-662-44199-2_106.
  36. ^ "libmcr – biblioteca de funciones elementales correctamente redondeadas". Archivado desde el original el 25 de febrero de 2021.
  37. ^ libmcr en GitHub .
  38. ^ "El proyecto CORE-MATH" . Consultado el 30 de agosto de 2022 .
  39. ^ "Funciones matemáticas: la biblioteca C de LLVM". libc.llvm.org .
  40. ^ Duncan J. Melville. "Tableta de arcilla YBC 7289". 2006
  41. ^ Reglas para redondear valores numéricos . Asociación Estadounidense de Normas . 1940. Z25.1-1940.
    La norma surgió de un comité de la ASA que trabajaba para estandarizar la conversión de pulgadas a milímetros. Véase: Agnew, PG (septiembre de 1940). "El amor del hombre por los números redondos". Industrial Standardization and Commercial Standards Monthly . Vol. 11, núm. 9. págs. 230–233.
    La norma también se publicitó de forma más concisa en: "Redondeo de decimales". Power . Vol. 84, núm. 11. Nov 1940. pág. 93.
    Práctica estándar para el uso de dígitos significativos en datos de prueba para determinar la conformidad con las especificaciones . ASTM. 2013 [1940]. doi :10.1520/E0029-13. E-29.
  42. ^ Woodward, Robert S. (1906). Probabilidad y teoría de errores. Monografías matemáticas. Vol. 7. Nueva York: J. Wiley & Son. p. 42. Un hecho importante con respecto al error 1/2 para n par es que su signo es arbitrario, o no está fijado por el cálculo como es el caso con todos los demás errores. Sin embargo, la regla de la computadora, que hace que la última cifra redondeada de un valor interpolado sea par cuando se debe desechar la mitad de una unidad, a largo plazo hará que este error sea tan a menudo positivo como negativo.
  43. ^ Newcomb, Simon (1882). Tablas logarítmicas y otras tablas matemáticas con ejemplos de su uso y sugerencias sobre el arte del cálculo. Nueva York: Henry Holt. pp. 14-15. Aquí tenemos un caso en el que se requiere la mitad de un número impar. [...] Una buena regla para adoptar en tal caso es escribir el número par más cercano .
  44. ^ Tuttle, Lucius (1916). The Theory of Measurements. Philadelphia: Jefferson Laboratory of Physics. p. 29. Una fracción perceptiblemente menor que la mitad debe descartarse y más de la mitad siempre debe considerarse como una unidad más, pero cuando no se sabe qué cifra es la más cercana, la regla universalmente adoptada es registrar el número par más cercano en lugar del número impar que esté igualmente cerca. La razón de este procedimiento es que en una serie de varias mediciones de la misma cantidad será tan probable que se registre un valor demasiado grande como uno demasiado pequeño, y así, en el promedio de varios de esos valores, sólo se producirá un pequeño error, si es que hay alguno.
  45. ^ Churchill Eisenhart (1947). "Efectos del redondeo o agrupamiento de datos". En Eisenhart; Hastay; Wallis (eds.). Selected Techniques of Statistical Analysis for Scientific and Industrial Research, and Production and Management Engineering . Nueva York: McGraw-Hill. págs. 187–223 . Consultado el 30 de enero de 2014 .
  46. ^ "La introducción del euro y el redondeo de los importes de las divisas" (PDF) . Archivado (PDF) desde el original el 2010-10-09 . Consultado el 2011-08-19 .
  47. ^ Baten, Jörg (2009). "Cuantificación de la alfabetización cuantitativa: acumulación de edades e historia del capital humano" (PDF) . Revista de historia económica . 69 (3): 783–808. doi :10.1017/S0022050709001120. hdl : 10230/481 . S2CID  35494384.
  48. ^ "Especificación del lenguaje ECMAScript ECMA-262" (PDF) . ecma-international.org .
  49. ^ OFCM, 2005: Manual Meteorológico Federal No. 1 Archivado el 20 de abril de 1999 en Wayback Machine , Washington, DC., 104 pp.
  • Weisstein, Eric W. "Redondeo". MathWorld .
  • Una introducción a diferentes algoritmos de redondeo que es accesible para un público general pero especialmente útil para quienes estudian informática y electrónica.
  • Cómo implementar procedimientos de redondeo personalizados de Microsoft (roto)
Retrieved from "https://en.wikipedia.org/w/index.php?title=Rounding&oldid=1253428033"