Articulo de referencia

Redondeo

Gráficas del resultado, y , del redondeo de x mediante diferentes métodos. Para mayor claridad, las gráficas se muestran desplazadas respecto a los valores enteros de y . En el ...

Gráficas del resultado, y , del redondeo de x mediante diferentes métodos. Para mayor claridad, las gráficas se muestran desplazadas respecto a los valores enteros de y . En el archivo SVG, coloque el cursor sobre un método para resaltarlo y, en navegadores compatibles con SMIL , haga clic para seleccionarlo o deseleccionarlo.

El redondeo consiste en ajustar un número a un valor aproximado y más conveniente, a menudo con una representación más corta o sencilla. Por ejemplo, sustituir 23,4476 dólares por 23,45 dólares, la fracción 312/937 por 1/3 o la expresión √2 por 1,414.

El redondeo se utiliza a menudo para obtener un valor más fácil de informar y comunicar que el original. También puede ser importante para evitar informar con excesiva precisión un número, una medida o una estimación calculada; por ejemplo, una cantidad que se calculó como 123456, pero cuya precisión se sabe que es de solo unos pocos cientos de unidades, generalmente se expresa mejor como "aproximadamente 123500".

Por otro lado, el redondeo de números exactos introduce cierto error de redondeo en el resultado. El redondeo es casi inevitable al reportar muchos cálculos, especialmente al dividir dos números en aritmética de enteros o de punto fijo ; al calcular funciones matemáticas como raíces cuadradas , logaritmos y senos ; o al usar una representación de punto flotante con un número fijo de cifras significativas . 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 conocer de antemano la cantidad de dígitos adicionales que deben calcularse para determinar si se debe redondear hacia arriba o hacia abajo. Este problema se conoce como « el dilema del creador de tablas ».

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

A veces se utiliza un signo de igual ondulado ( ≈ ) para indicar el redondeo de números exactos, por ejemplo, 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 debe realizarse mediante una función . De esta forma, cuando se redondea la misma entrada en diferentes casos, el resultado permanece inalterado.
  2. Los cálculos realizados con redondeo deberían ser muy similares a los realizados sin redondeo.
    • Como resultado de (1) y (2), la salida del redondeo debería estar cerca de su entrada, a menudo lo más cerca posible.
  3. Para que se considere redondeo, el rango será un subconjunto del dominio , a menudo discreto . Un rango clásico son los números enteros .
  4. El redondeo debe 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 ser útil en informática o aritmética humana, donde se requiere precisión finita y la velocidad es un factor importante.

Dado que 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 un número ha sido redondeado, 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 a trozos .

Tipos de redondeo

Los problemas típicos de redondeo incluyen:

Redondeo a entero

La forma más básica de redondeo consiste en reemplazar un número arbitrario por un entero. Todos los modos de redondeo que se describen a continuación son implementaciones concretas de un procedimiento abstracto de un solo argumento llamado "round()". Se trata de funciones reales (a excepción de aquellas que utilizan aleatoriedad).

Redondeo dirigido a un número entero

Estos cuatro métodos se denominan redondeo dirigido a un entero , ya que los desplazamientos desde el número original x hasta el valor redondeado y se dirigen 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 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 alejándose de cero. Si x es negativo, redondear hacia abajo es lo mismo que redondear alejándose de 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 involucró un nuevo índice establecido por la Bolsa de Valores de Vancouver en 1982. Inicialmente se fijó en 1000,000 (con tres decimales de precisión) y, después de 22 meses, había caído a aproximadamente 520, aunque el mercado parecía estar al alza. 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. Recalcular el índice para el mismo período utilizando el redondeo a la milésima más cercana en lugar del truncamiento corrigió el valor del índice de 524,811 a 1098,892. [ 3 ]

En los ejemplos que se muestran a continuación, sgn( x ) se refiere a la función signo aplicada al número original, x .

Redondeando hacia abajo

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

y=Floor(incógnita)=incógnita=incógnita{\displaystyle y=\mathrm {floor} (x)=\left\lfloor x\right\rfloor =-\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.

Redondeando hacia cero

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

y=truncar(incógnita)=sgn(incógnita)|incógnita|=sgn(incógnita)|incógnita|={incógnitaincógnita0incógnitaincógnita<0{\displaystyle y=\operatorname {truncate} (x)=\operatorname {sgn}(x)\left\lfloor |x|\right\rfloor =-\operatorname {sgn}(x)\left\lceil -|x|\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.

Redondeando desde cero

También se puede redondear alejándose de cero (o redondeando hacia el infinito ): y es el entero más cercano a 0 (o equivalentemente, a x ) tal que x está entre 0 e y (inclusive).

y=sgn(incógnita)|incógnita|=sgn(incógnita)|incógnita|={incógnitaincógnita0incógnitaincógnita<0{\displaystyle y=\operatorname {sgn}(x)\left\lceil |x|\right\rceil =-\operatorname {sgn}(x)\left\lfloor -|x|\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 cercano . Redondear un número x al entero más cercano requiere alguna regla de desempate para aquellos casos en que x está exactamente a medio camino entre dos enteros, es decir, cuando la parte fraccionaria de x es exactamente 0,5.

Si no fuera por las partes fraccionarias de 0,5, 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 (a saber, 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 excepción de aquellos con 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, se suelen utilizar números de coma flotante , que presentan aún más matices computacionales debido a que no están espaciados de manera uniforme.

Redondeando a la mitad

Se puede redondear la mitad hacia arriba (o hacia el infinito positivo ), una regla de desempate ampliamente utilizada en muchas disciplinas. Es decir, los valores medios 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+12=incógnita12=122incó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) utilizan "half up" para referirse a la mitad redondeada alejándose de cero en lugar de la mitad redondeada hacia el infinito positivo . [ 4 ] [ 5 ]

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

Redondeando a la mitad hacia abajo

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

y=incógnita12=incógnita+12=122incó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 "half down" para referirse a la mitad redondeada hacia cero en lugar de la mitad redondeada 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ándola del infinito ) en lugar de redondear la mitad alejándola del cero de forma 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=sgn(incógnita)|incógnita|12=sgn(incógnita)|incógnita|+12={incógnita12=122incógnitaincógnita0incógnita+12=122incógnitaincógnita<0{\displaystyle y=\operatorname {sgn}(x)\left\lceil |x|-{\tfrac {1}{2}}\right\rceil =-\operatorname {sgn}(x)\left\lfloor -|x|+{\tfrac {1}{2}}\right\rfloor ={\begin{cases}\left\lceil x-{\tfrac {1}{2}}\right\rceil =\left\lfloor {\tfrac {1}{2}}\lceil 2x\rceil \right\rfloor &x\geq 0\\[5mu]\left\lfloor x+{\tfrac {1}{2}}\right\rfloor =\left\lceil {\tfrac {1}{2}}\lfloor 2x\rfloor \right\rceil &x<0\end{cases}}}

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 forma simétrica y, por lo tanto, está libre de sesgos positivos/negativos generales si los números originales son positivos o negativos con igual probabilidad. Sin embargo, aún presenta un sesgo hacia el cero.

Redondeando a la mitad alejándonos de cero.

También se puede redondear la mitad alejándola de cero (o redondear la mitad hacia el infinito ), una regla de desempate que se enseña y utiliza 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=sgn(incógnita)|incógnita|+12=sgn(incógnita)|incógnita|12={incógnita+12=122incógnitaincógnita0incógnita12=122incógnitaincógnita<0{\displaystyle y=\operatorname {sgn}(x)\left\lfloor |x|+{\tfrac {1}{2}}\right\rfloor =-\operatorname {sgn}(x)\left\lceil -|x|-{\tfrac {1}{2}}\right\rceil ={\begin{cases}\left\lfloor x+{\tfrac {1}{2}}\right\rfloor =\left\lceil {\tfrac {1}{2}}\lfloor 2x\rfloor \right\rceil &x\geq 0\\[5mu]\left\lceil x-{\tfrac {1}{2}}\right\rceil =\left\lfloor {\tfrac {1}{2}}\lceil 2x\rceil \right\rfloor &x<0\end{cases}}}

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

Esto puede resultar más eficiente en ordenadores que utilizan la representación de signo y magnitud para los valores a redondear, ya que solo es necesario considerar el primer dígito omitido para determinar si se redondea hacia arriba o hacia abajo. Este es un método utilizado para redondear a cifras significativas debido a su simplicidad.

Este método, también conocido como redondeo comercial , trata los valores positivos y negativos de forma simétrica y, por lo tanto, está libre de sesgos positivos/negativos generales si los números originales son positivos o negativos con igual probabilidad. Sin embargo, aún presenta un sesgo que se aleja del cero.

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

Redondeando a la mitad para que sea par.

También se puede redondear la mitad al número par más cercano , una regla de desempate sin sesgo positivo/negativo y sin sesgo hacia/alejándose del cero. Según 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, independientemente de si las entradas son mayoritariamente positivas o mayoritariamente negativas, siempre que no sean 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 que se utiliza en las operaciones IEEE 754 para resultados en formatos binarios de punto flotante.

Al eliminar el sesgo, la suma o resta repetida de números independientes, como en un paseo 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 linealmente.

Sin embargo, esta regla distorsiona la distribución al aumentar la probabilidad de los números pares en relación con los impares. Por eso, esta regla se aplica a situaciones donde la suma de los números es más importante que la distribución.

Redondeando la mitad a impar

También se puede redondear la mitad al número impar , una regla de desempate similar a la de redondear la mitad al número par. En este método, 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 sesgos positivos/negativos y de sesgo hacia/alejándose del cero, siempre que los números que se van a redondear no sean mayoritariamente pares ni mayoritariamente impares. También comparte la propiedad de redondear a la mitad a la mitad de los números pares de distorsionar la distribución original, ya que aumenta la probabilidad de los impares en relación con los pares. Fue el método utilizado para los saldos bancarios en el Reino Unido cuando decimalizó su moneda [ 8 ] .

Esta variante casi nunca se usa en cálculos, excepto en situaciones donde se desea evitar aumentar la escala de los números de punto flotante, que tienen un rango de exponente limitado. Con redondeo a la mitad al número par , un número no infinito se redondearía al infinito, y un pequeño valor desnormalizado se redondearía a un valor normal distinto de cero. En efecto, este modo prefiere preservar la escala existente de los números de empate, evitando resultados fuera de rango cuando sea posible para sistemas numéricos de base par (como el binario y el decimal) .

Redondeo aleatorio a un número entero

Desempate alterno

Un método, menos conocido que la mayoría, consiste en 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, se alterna el redondeo hacia arriba o hacia abajo: para la primera aparición de una parte fraccionaria de 0,5, se redondea hacia arriba; para la segunda, hacia abajo, y así sucesivamente. Alternativamente, el primer redondeo de la parte fraccionaria de 0,5 puede determinarse mediante una semilla aleatoria . "Arriba" y "abajo" pueden ser dos métodos de redondeo cualesquiera que se opongan entre sí: hacia y lejos del infinito positivo o hacia y lejos del cero.

Si las ocurrencias de fracciones de 0,5 se producen con una frecuencia significativamente mayor que la de reiniciar el conteo de ocurrencias, entonces el método está prácticamente libre de sesgos. Con un sesgo cero garantizado, resulta útil si se van a sumar o promediar los números.

Desempate aleatorio

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

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

Redondeo estocástico

El redondeo de la siguiente manera, a uno de los enteros más cercanos hacia el infinito negativo y al 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 insesgado en promedio. [ 9 ]

Redondo(incógnita)={incógnita con probabilidad 1(incógnitaincógnita)=incógnitaincógnita+1incógnita+1 con probabilidad incógnitaincógnita{\displaystyle \operatorname {Ronda} (x)={\begin{cases}\lfloor x\rfloor &{\text{ con probabilidad }}1-(x-\lfloor x\rfloor )=\lfloor x\rfloor -x+1\\[5mu]\lfloor x\rfloor +1&{\text{ con probabilidad }}{x-\lfloor x\rfloor }\end{cases}}}

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

El redondeo estocástico puede ser preciso de una manera que una función de redondeo nunca puede ser. Por ejemplo, supongamos que se comienza con 0 y se le suma 0.3 cien veces mientras se redondea el total acumulado entre cada suma. El resultado sería 0 con redondeo regular, pero con redondeo estocástico, el resultado esperado sería 30, que es el mismo valor obtenido sin redondeo. Esto puede ser útil en aprendizaje automático donde el entrenamiento puede usar aritmética de baja precisión iterativamente. [ 9 ] El redondeo estocástico también es una forma de lograr tramado unidimensional .

Comparación de métodos para redondear a un número entero.

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 de segundo enteras, 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 algún valor positivo especificado m implica los siguientes pasos:

ronortedToMETROltipaglmi(incógnita,metro)=ronorted(incógnita/metro)×metro{\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 redondear eso a 218 y finalmente calcular 218 × 0,01 = 2,18 .

Al redondear a un número predeterminado de cifras significativas , el incremento m depende de la magnitud del número que se va a redondear (o del resultado redondeado).

El incremento m suele ser una fracción finita en el sistema numérico utilizado para representar los números. Para su visualización en humanos, generalmente se utiliza el sistema decimal (es decir, m es un número entero multiplicado por una potencia de 10, como 1/1000 o 25/100). Para valores intermedios almacenados en computadoras digitales, suele utilizarse el sistema binario ( m es un número entero multiplicado por una potencia de 2).

La función abstracta de un solo argumento "round()", que devuelve un número entero a partir de un valor real arbitrario, tiene al menos una docena de definiciones concretas distintas que se presentan en la sección de redondeo a enteros . 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, por lo tanto, se reduce a la función abstracta equivalente de un solo argumento, que también tiene la misma docena de definiciones concretas distintas.

Redondeo logarítmico

Redondeo a una potencia específica

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

ronortedToPAGowmir(incógnita,b)=bronorted(registrobincógnita),incógnita>0,b>0,b1{\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 también son aplicables al redondeo a una potencia.

En la escala cromática de doce tonos de la música, 3/2 se redondea a 2 7/12 (una quinta ), 4/3 se redondea a 2 5/12 (una cuarta ), 5/4 se redondea a 2 4/12 (una tercera mayor ), 6/5 se redondea a 2 3/12 (una tercera menor ) y 9/8 se redondea a 2 2/12 ( una tercera disminuida ) .

Redondeo a escala

Este tipo de redondeo, también llamado redondeo a escala logarítmica , es una variante del redondeo a una potencia específica . El redondeo a escala logarítmica se realiza calculando el logaritmo de la cantidad y redondeando al valor más cercano en la escala logarítmica.

Por ejemplo, las resistencias se suministran con valores preferidos en una escala logarítmica. En particular, para resistencias con una precisión del 10%, se suministran con valores nominales de 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 que una resistencia de 180 ohmios sería la primera opción si no hay otras consideraciones.

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 punto flotante

En aritmética de punto flotante , el redondeo consiste en transformar un valor x en un valor y con un número específico de cifras significativas . 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 coma flotante. El algoritmo para dicho redondeo se presenta en la sección de redondeo escalado anterior, pero con un factor de escala constante s = 1 y una base entera b > 1 .

Cuando el resultado redondeado excede el límite, el resultado para un redondeo dirigido es el infinito con signo apropiado al "redondear alejándose 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) al "redondear 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 conveniente redondear un número dado x a una fracción "ordenada", es decir, a la fracción más cercana y = m / n cuyo numerador m y denominador n no superen un máximo dado. Este problema es bastante distinto al 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 secuencias de Farey , el árbol de Stern-Brocot y las fracciones continuas .

Redondeo a un valor disponible

La madera acabada , el papel de escribir, los componentes electrónicos y muchos otros productos suelen venderse en unos pocos valores 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". [ 10 ] [ 11 ]

Cuando un conjunto de valores preferidos está igualmente espaciado en una escala logarítmica, elegir el valor preferido más cercano a cualquier valor dado puede considerarse una forma de redondeo escalado . Dichos valores redondeados pueden calcularse directamente. [ 12 ]

contenedores arbitrarios

Las reglas de redondeo más generales permiten separar valores en puntos de ruptura arbitrarios, como por ejemplo en la agrupación de datos . Una herramienta formalizada matemáticamente relacionada son las secuencias de señalización , que utilizan nociones de distancia distintas a la simple diferencia; por ejemplo, una secuencia puede redondearse al entero con el menor error relativo (porcentual).

El redondeo en otros contextos

Dilatación y difusión de errores

Al digitalizar señales continuas , como las ondas sonoras, el efecto global de varias mediciones es más importante que la precisión de cada medición individual. En estas circunstancias, se suelen utilizar el tramado y una técnica relacionada, la difusión de errores . Una técnica relacionada, denominada modulación por ancho de pulso, se utiliza para obtener una salida analógica de un dispositivo inercial mediante la aplicación rápida de pulsos de potencia con un ciclo de trabajo variable . La modulación delta-sigma se utiliza comúnmente para la conversión entre señales del mundo real y señales digitales, lo que permite controlar las estadísticas de frecuencia de la cuantificación .

La difusión de errores busca minimizar el error promedio. Al trabajar con una pendiente suave de uno a cero, el resultado será cero durante los primeros términos hasta que la suma del error y el valor actual sea mayor que 0,5. En ese caso, se genera un 1 y se resta la diferencia del error acumulado. El tramado de Floyd-Steinberg es un procedimiento popular de difusión de errores para la digitalización de imágenes.

Como ejemplo unidimensional, supongamos que los números 0,9677 , 0,9204 , 0,7451 y 0,3091 aparecen en orden y cada uno debe redondearse 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 donde el redondeo es aleatorio, ya sea hacia arriba o hacia abajo. Se puede usar el redondeo estocástico en la aritmética de Monte Carlo, pero en general, se suele usar más el redondeo hacia arriba o hacia abajo con igual probabilidad. Las ejecuciones repetidas darán una distribución aleatoria de resultados que puede indicar la estabilidad del cálculo. [ 13 ]

Cálculo exacto con aritmética redondeada

Es posible utilizar 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 a 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 se podían usar reglas de cálculo para la aritmética exacta.

Doble redondeo

Redondear un número dos veces consecutivas a diferentes niveles de precisión, siendo la última precisión más gruesa, no garantiza el mismo resultado que redondearlo una sola vez a la precisión final, excepto en el caso del redondeo dirigido. [ nb 2 ] Por ejemplo, redondear 9,46 a la décima más cercana da 9,5, y luego 10 al redondear al entero más cercano usando el redondeo de la mitad al número par, pero daría 9 al redondear directamente usando el mismo método. Borman y Chatfield [ 14 ] analizan las implicaciones del doble redondeo al comparar datos redondeados a una cifra decimal con límites de especificación expresados ​​usando enteros.

En los casos Martinez v. Allstate y Sendejo v. Farmers , litigados entre 1995 y 1997, las compañías de seguros argumentaron que el redondeo doble de las primas era permisible e incluso obligatorio. Los tribunales estadounidenses fallaron en contra de las compañías de seguros y les ordenaron adoptar normas para garantizar el redondeo simple. [ 15 ]

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 forma idéntica en diferentes máquinas; se han tenido que utilizar trucos de programación especiales para lograr esto con el punto flotante x87 . [ 16 ] [ 17 ] El lenguaje Java se modificó para permitir resultados diferentes cuando la diferencia no importa y requerir el uso de un calificador strictfp cuando los resultados deben ajustarse con precisión; el punto flotante estricto se restauró en Java  17. [ 18 ]

En algunos algoritmos, se calcula un resultado intermedio con mayor precisión 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 . [ 19 ] De manera equivalente, consiste en devolver el resultado intermedio cuando es representable exactamente y el número de punto flotante más cercano con una mantisa impar en caso contrario; por eso también se conoce como redondeo a impar . [ 20 ] [ 21 ] 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 .

Redondeo para preparar una precisión menor

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

Con la aritmética decimal, se evitan los dígitos finales 0 y 5 cuando la entrada no se puede representar exactamente; si hay que elegir entre números con el dígito menos significativo 0 o 1, 4 o 5, 5 o 6, 9 o 0, entonces se debe seleccionar el dígito diferente de 0 o 5; de lo contrario, la elección es arbitraria. IBM define que, en este último caso, se debe seleccionar un dígito con la magnitud menor. [ 22 ] [ 23 ] RPSP se puede aplicar con un paso entre dos redondeos consecutivos tan pequeño como un solo dígito (por ejemplo, se puede aplicar el redondeo a 1/10 después del redondeo a 1/100). Por ejemplo, al redondear a 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 (evitando un 0 final);
  • 22.0, 22.1, 22.9, 22.99 se redondean a 22;
  • 24,0, 24,1, 24,9, 24,99 se redondean a 24 (evitando un 5 final);
  • 25,0 se redondea a 25;
  • 25,01 y 25,1 se redondean a 26 (evitando un 5 final).

En el ejemplo de la sección " Doble redondeo ", redondear 9.46 a un decimal da 9.4, que al redondearlo a entero da 9.

Con la aritmética binaria, este redondeo también se llama "redondear al impar" (que no debe confundirse con " redondear la mitad al 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 con aritmética binaria, cada paso de redondeo debe eliminar al menos 2 dígitos binarios; de lo contrario, pueden aparecer resultados incorrectos. 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 a la mitad para par a 1 ⇒ el resultado es 4 (incorrecto)

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

RPSP está implementado en hardware en IBM zSeries y pSeries . En el módulo de Python "Decimal", el módulo de Tcl "math", el paquete de Haskell "decimal-arithmetic" y posiblemente otros, este modo se denomina ROUND_05UP o round05up.

El dilema del fabricante de mesas

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

Nadie sabe cuánto costaría calcular y w correctamente redondeado para cada par de argumentos de punto flotante en los que no se produzca desbordamiento. En cambio, las bibliotecas matemáticas de renombre calculan funciones trascendentales elementales en la mayoría de los casos con un margen ligeramente superior a la mitad de un ulp y casi siempre con un margen muy inferior a un ulp. ¿Por qué no se puede redondear y w con un margen inferior a la mitad de un ulp como la raíz cuadrada? Porque nadie sabe cuánto cálculo costaría... No existe una forma general de predecir cuántos dígitos adicionales se necesitarán para calcular una expresión trascendental y redondearla correctamente a un número preestablecido de dígitos. Incluso el hecho (de ser cierto) de que un número finito de dígitos adicionales sea suficiente en última instancia puede ser un teorema profundo. [ 24 ]

El estándar IEEE 754 para coma flotante garantiza que las operaciones de suma, resta, multiplicación, división, suma y multiplicación combinadas , raíz cuadrada y resto de coma flotante darán el resultado correctamente redondeado de la operación de precisión infinita. El estándar de 1985 no ofrecía tal garantía para funciones más complejas, que generalmente solo son precisas hasta el último bit como máximo. Sin embargo, el estándar de 2008 garantiza que las implementaciones conformes darán resultados correctamente redondeados que respeten el modo de redondeo activo; la implementación de las funciones, no obstante, 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 dichas funciones. Sin embargo, para una implementación de una función de este tipo, determinar un límite para una precisión dada sobre cuán exactos deben calcularse los resultados, antes de que se pueda garantizar un resultado correctamente redondeado, puede requerir mucho tiempo de cálculo o puede ser inalcanzable. [ 25 ] 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 adelante); pero según un modelo probabilístico, el redondeo correcto se puede satisfacer con una probabilidad muy alta cuando se utiliza una precisión intermedia de hasta el doble del número de dígitos del formato objetivo más una pequeña constante (después de tener en cuenta los casos especiales).

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

  • La biblioteca ml4j de IBM , que significa Biblioteca Matemática para Java , escrita por Abraham Ziv y Moshe Olshansky en 1999, redondeaba correctamente solo al más cercano. [ 26 ] [ 27 ] 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 doble precisión, un segundo paso basado en aritmética doble-doble y un tercer paso con una precisión de 768 bits basado en matrices de números de punto flotante de doble precisión IEEE 754.
  • La biblioteca matemática portátil Accurate de IBM (abreviada como APMathLib o simplemente MathLib), [ 28 ] [ 29 ] también llamada libultim, [ 30 ] solo redondea al más cercano. Esta biblioteca utiliza hasta 768 bits de precisión de trabajo. Se incluyó en la biblioteca C de GNU en 2001, [ 31 ] pero las "rutas lentas" (que proporcionan un redondeo correcto) se eliminaron entre 2018 y 2021.
  • CRlibm, escrito en el antiguo equipo de Arénaire (LIP, ENS Lyon ), se distribuyó por primera vez en 2003. [ 32 ] Admite los 4 modos de redondeo y se demuestra utilizando el conocimiento de los casos más difíciles de redondear. [ 33 ] [ 34 ] Más eficiente que IBM MathLib. [ 35 ] Sucedido por Metalibm (2014), que automatiza las demostraciones formales. [ 36 ]
  • La biblioteca libmcr de Sun Microsystems de 2004, en los 4 modos de redondeo. [ 37 ] [ 38 ] Para los casos difíciles, esta biblioteca también utiliza precisión múltiple, y el número de palabras aumenta en 2 cada vez que se produce el dilema del creador de tablas (con 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 . Demostrado utilizando el conocimiento de los casos más difíciles de redondear. [ 39 ] [ 35 ]
  • LLVM libc proporciona algunas funciones correctamente redondeadas en los 4 modos de redondeo. [ 40 ]

Existen números computables para los cuales nunca se puede determinar un valor redondeado, independientemente de la cantidad de dígitos que se calculen. No se pueden dar ejemplos específicos, pero esto se deduce de la indecidibilidad del problema de la parada . Por ejemplo, si la conjetura de Goldbach es verdadera pero indemostrable , entonces el resultado de redondear el siguiente valor, n , al entero más cercano no se puede determinar: o bien n = 1 + 10 k, donde k es el primer número par mayor que 4 que no es la suma de dos números primos, o bien 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 con cualquier precisión dada, incluso si la conjetura es indemostrable.

Interacción con búsquedas de cadenas

El redondeo puede afectar negativamente la búsqueda de un número mediante cadenas de texto. Por ejemplo, π redondeado a cuatro dígitos es "3.1416", pero una búsqueda simple de esta cadena no encontrará "3.14159" ni ningún otro valor de π redondeado a más de cuatro dígitos. En cambio, la truncación no presenta este problema; por ejemplo, una búsqueda simple de la cadena "3.1415", que es π truncado a cuatro dígitos, sí encontrará valores de π truncados a más de cuatro dígitos.

Historia

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

El método de redondeo a la mitad más cercano ha servido como estándar estadounidense Z25.1 y estándar ASTM E-29 desde 1940. [ 42 ] El origen de los términos redondeo imparcial y redondeo estadístico es bastante autoexplicativo. En la cuarta edición de 1906 de Probabilidad y Teoría de Errores, Robert Simpson Woodward lo llamó "la regla de la computadora", [ 43 ] lo que indica que entonces era de uso común entre los computadores humanos que calculaban tablas matemáticas. Por ejemplo, se recomendó en el libro de Simon Newcomb de c. 1882 Tablas Logarítmicas y Otras Tablas Matemáticas . [ 44 ] La Teoría de las Mediciones de Lucius Tuttle de 1916 lo llamó una "regla universalmente adoptada" para registrar mediciones físicas. [ 45 ] Churchill Eisenhart indicó que la práctica ya estaba "bien establecida" en el análisis de datos en la década de 1940. [ 46 ]

El origen del término «redondeo bancario» sigue siendo más bien incierto. Si este método de redondeo fue alguna vez un estándar en la 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 las cantidades monetarias » [ 47 ] sugiere que anteriormente no existía un enfoque estándar para el redondeo en la banca; y especifica que las cantidades «a medio camino» deben redondearse al alza.

Hasta la década de 1980, el método de redondeo utilizado en la aritmética de punto flotante solía estar predeterminado por el hardware, mal documentado, era inconsistente y diferente para cada marca y modelo de computadora. Esta situación cambió tras la adopción del estándar de punto flotante IEEE 754 por la mayoría de los fabricantes de computadoras. Dicho 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, gran parte de la investigación tiende a redondear a múltiplos de 5 o 2. Por ejemplo, Jörg Baten utilizó el método de acumulación de edades en muchos estudios para evaluar el nivel de alfabetización numérica de poblaciones antiguas. Creó el Índice ABCC , que permite comparar la alfabetización numérica entre regiones sin necesidad de fuentes históricas que midieran la alfabetización de la población. [ 48 ]

Funciones de redondeo en lenguajes de programación

La mayoría de los lenguajes de programación ofrecen funciones o sintaxis especial para redondear números fraccionarios de diversas maneras. Los primeros lenguajes numéricos, como Fortran y C , solo ofrecían un método, generalmente el truncamiento (hacia cero). Este método predeterminado podía inferirse en ciertos contextos, como al asignar un número fraccionario a una variable entera o al usar un número fraccionario como índice de un array . Otros tipos de redondeo debían programarse explícitamente; por ejemplo, redondear 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 (hacia arriba, hacia 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 estándar de punto flotante IEEE 754 y definen estas funciones como tomando un argumento de punto flotante de doble precisión y devolviendo el resultado del mismo tipo, que luego puede convertirse a un entero si es necesario. Este enfoque puede evitar desbordamientos espurios porque los tipos de punto flotante tienen un rango mayor 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 printf o similar de formato de cadena, que permite convertir un número fraccionario a una cadena, redondeado a un número de lugares decimales especificado por el usuario (la precisión ). Por otro lado, el truncamiento (redondeo a cero) sigue siendo el método de redondeo predeterminado utilizado por muchos lenguajes, 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 los números y las 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 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 (en particular dentro de los enlaces de interfaz estándar de JavaScript o ECMAScript [ 49 ] .

Otros estándares de redondeo

Algunas disciplinas o instituciones han emitido normas o directrices para el redondeo de las consultas.

observaciones meteorológicas de EE. UU.

En una directriz publicada a mediados de 1966, [ 50 ] la Oficina del Coordinador Federal de Meteorología de EE. UU. determinó que los datos meteorológicos debían redondearse al número entero más cercano , con la regla de desempate de "redondear a la mitad hacia arriba". Por ejemplo, 1,5 redondeado a un 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 alejándose de cero".

Cero negativo en meteorología

Algunos meteorólogos pueden escribir "−0" para indicar una temperatura entre 0,0 y −0,5 grados (excluyendo ambos extremos) redondeada a un número entero. Esta notación se utiliza cuando el signo negativo se considera importante, por pequeña que sea la magnitud; por ejemplo, al redondear temperaturas en la escala Celsius , donde bajo cero indica congelación.

Cero negativo en el cálculo

Algunas representaciones informáticas de números, incluida la representación de punto flotante , distinguen entre 0 (también conocido como +0 ) y −0 . Para estas, el redondeo que habría sido a 0 desde un número negativo puede redondearse a −0 en lugar de a +0 .

Véase también

Notas

  1. Esto es necesario, por ejemplo, [1] para el reparto de plazas , implementado, por ejemplo, mediante el método del resto mayor (véase Matemáticas del reparto ), y [2] para distribuir el IVA total de una factura entre sus partidas.
  2. Un caso en el que el doble redondeo siempre conduce al mismo valor que el redondeo directo a la precisión final es cuando la base 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 computacional". IEEE Transactions on Computers . C-26 (7): 610– 621. Bibcode : 1977ITCmp.100..610K . doi : 10.1109/TC.1977.1674893 .
  3. Higham, Nicholas John (2002). Precisión y estabilidad de los algoritmos numéricos (2.ª ed.). p. 54. doi : 10.1137/1.9780898718027.ch2 . ISBN   978-0-89871-521-7.
    Nievergelt, Yves (2000). "Errores de redondeo que hacen caer tus acciones". Mathematics Magazine . 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í" (PDF) . Wall Street Journal .
    Lilley, Wayne (29 de noviembre de 1983). "El índice bursátil de Vancouver por fin tiene el número correcto" (PDF) . The Toronto Star .
  4. 1 2 "java.math.RoundingMode" . Oracle.
  5. 1 2 "decimal – Aritmética de punto fijo y punto flotante decimal" . 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. 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 al truncar números reales que terminan en .5; es decir, los números impares se redondean al entero par más cercano y los números pares se redondean al entero par más cercano.
  8. Anexo 1 de la Ley de Moneda Decimal de 1969
  9. ^ 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 ]. 
  10. "Reguladores de voltaje de diodo Zener" (PDF) . Archivado (PDF) del original el 13 de julio de 2011. Consultado el 24 de noviembre de 2010 .
  11. "Stellafane ATM: Construye un probador Foucault & Ronchi Página 3" . stellafane.org . Consultado el 10 de septiembre de 2025 .
  12. Schneider, Christine (2002-01-21). "Fórmula de Excel que calcula valores de resistencia estándar del 1%" . Diseño electrónico . Recuperado el 2025-09-10 .
  13. 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.
  14. Borman, Phil; Chatfield, Marion (10 de noviembre de 2015). "Evite los peligros de usar datos redondeados". Journal of Pharmaceutical and Biomedical Analysis . 115 : 506–507 . doi : 10.1016/j.jpba.2015.07.021 . PMID 26299526 . 
  15. Deborah R. Hensler (2000). Dilemas de las demandas colectivas: Perseguir objetivos públicos para beneficio privado . RAND. págs. 255–293 . ISBN  0-8330-2601-1.
  16. Samuel A. Figueroa (julio de 1995). "¿Cuándo es inocuo el doble redondeo?" . Boletín informativo ACM SIGNUM . 30 (3). ACM: 21– 25. doi : 10.1145/221332.221334 .
  17. Roger Golliver (octubre de 1998). "Producción eficiente de resultados dobles ortogonales predeterminados IEEE utilizando hardware IEEE extendido" (PDF) . Intel.
  18. Darcy, Joseph D. "JEP 306: Restaurar la semántica de punto flotante siempre estricta" . Consultado el 12 de septiembre de 2021 .
  19. Moore, J. Strother; Lynch, Tom; Kaufmann, Matt (1996). "Una prueba verificada mecánicamente 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 . Recuperado el 2 de agosto de 2016 . 
  20. Boldo, Sylvie ; Melquiond, Guillaume (2008). "Emulación de un FMA y sumas correctamente redondeadas: algoritmos probados que utilizan redondeo a impar" . IEEE Transactions on Computers . 57 (4): 462–471 . doi : 10.1109/TC.2007.70819 .
  21. "21718 – el redondeo de real.c no es perfecto" . gcc.gnu.org .
  22. "Operaciones aritméticas" . ibm.com . IBM. 8 de abril de 2025. Consultado el 12 de enero de 2026 .
  23. "z/Architecture Principles of Operation, Eleventh Edition" (PDF) . publibfi.boulder.ibm.com . págs . 9-14 . 
  24. Kahan, William Morton . "Un logaritmo demasiado ingenioso" . Consultado el 14 de noviembre de 2008 .
  25. ^ 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. LCCN 2009939668 . 
  26. "NA Digest Domingo, 18 de abril de 1999 Volumen 99 : Número 16" . 18 de abril de 1999. Consultado el 29 de agosto de 2022 . 
  27. "Biblioteca matemática para Java" . Archivado del original el 8 de mayo de 1999.
  28. "Biblioteca matemática portátil precisa" . Archivado del original el 7 de febrero de 2005.
  29. mathlib en GitHub .
  30. "libultim – la biblioteca definitiva de funciones elementales con redondeo correcto" . Archivado del original el 1 de marzo de 2021.
  31. "Git - glibc.git/commit" . Sourceware.org . Consultado el 18 de julio de 2022 .
  32. 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 .  
  33. "CRlibm – Biblioteca matemática con redondeo correcto" . Archivado del original el 27/10/2016.
  34. crlibm en GitHub
  35. 1 2 Sibidanov, Alexei; Zimmermann, Paul; Glondu, Stéphane (2022). El proyecto CORE-MATH . 29º Simposio IEEE sobre Aritmética Computacional (ARITH 2022) . Recuperado el 30 de agosto de 2022 .
  36. Kupriianova, Olga; Lauter, Christoph (2014). Metalibm: Un generador de código de funciones matemáticas . Mathematical Software – ICMS 2014. Vol. 8592. pp. 713– 717. doi : 10.1007/978-3-662-44199-2_106 .  
  37. "libmcr – biblioteca de funciones elementales con redondeo correcto" . Archivado del original el 25 de febrero de 2021.
  38. libmcr en GitHub .
  39. "El proyecto CORE-MATH" . Consultado el 30 de agosto de 2022 .
  40. "Funciones matemáticas: la biblioteca C de LLVM" . libc.llvm.org .
  41. Duncan J. Melville. "Tablilla de arcilla YBC 7289". 2006
  42. Reglas para el redondeo de valores numéricos . Asociación Estadounidense de Estándares . 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.º 9, págs. 230-233 .   
    El estándar también se publicitó de forma más concisa en: "Redondeo de decimales" . Power . Vol. 84, n.º 11. Noviembre de 1940. pág. 93.   
    Práctica estándar para el uso de cifras significativas en datos de prueba para determinar la conformidad con las especificaciones . ASTM. 2013 [1940]. doi : 10.1520/E0029-13 . E-29.
  43. Woodward, Robert S. (1906). Probabilidad y teoría de errores . Monografías matemáticas. Vol. 7. Nueva York: J. Wiley & Son. pág. 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 ocurre con todos los demás errores. Sin embargo, la regla del ordenador, que hace que la última cifra redondeada de un valor interpolado sea par cuando se debe descartar media unidad, hará, a la larga, que este error sea tan a menudo positivo como negativo.  
  44. 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. págs. 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 . 
  45. Tuttle, Lucius (1916). La teoría de las mediciones . Filadelfia: Laboratorio de Física Jefferson. pág. 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 con certeza cuál es la cifra 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 hacer un registro demasiado grande como demasiado pequeño, y por lo tanto en el promedio de varios de esos valores causará solo un pequeño error, si es que lo hay. 
  46. Churchill Eisenhart (1947). «Efectos del redondeo o la agrupación de datos» . En Eisenhart; Hastay; Wallis (eds.). Técnicas selectas de análisis estadístico para la investigación científica e industrial, y la ingeniería de producción y gestión . Nueva York: McGraw-Hill. págs. 187–223 . Consultado el 30 de enero de 2014 . 
  47. "La introducción del euro y el redondeo de las cantidades monetarias" (PDF) . Archivado (PDF) del original el 9 de octubre de 2010. Consultado el 19 de agosto de 2011 .
  48. Baten, Jörg (2009). "Cuantificando la alfabetización cuantitativa: acumulación de edades y la historia del capital humano". Journal of Economic History . 69 (3): 783– 808. doi : 10.1017/S0022050709001120 . hdl : 10230/481 .
  49. "ECMA-262 Especificación del lenguaje ECMAScript" (PDF) . ecma-international.org .
  50. OFCM, 2005: Manual Meteorológico Federal N.° 1 Archivado el 20 de abril de 1999 en Wayback Machine , Washington, DC., 104 págs.
  • Weisstein, Eric W. "Redondeo" . MathWorld .
  • Una introducción a diferentes algoritmos de redondeo , accesible a un público general pero especialmente útil para quienes estudian informática y electrónica.
  • Cómo implementar procedimientos de redondeo personalizados de Microsoft (fallido)