Haz todo lo posible por comprender el código de forma correcta previamente a adaptarlo a tu trabajo si ttienes algo que aportar puedes dejarlo en la sección de comentarios.
Solución:
“Redondear al entero más cercano” es completamente inequívoco, excepto cuando la parte fraccionaria del número a redondear resulta ser exactamente $frac 1 2$. En ese caso, se debe utilizar algún tipo de regla de desempate. Wikipedia (actualmente) enumera seis reglas deterministas de desempate de uso más o menos común:
- Redondea $frac 1 2$ hacia arriba
- Redondea $frac 1 2$ hacia abajo
- Redondea $frac 1 2$ lejos de cero
- Redondea $frac 1 2$ hacia cero
- Redondea $frac 1 2$ al número par más cercano
- Redondea $frac 1 2$ al número impar más cercano
De estos, personalmente me gusta más “redondear $frac 1 2$ al número par más cercano”, también conocido como “redondeo bancario”. También es la regla de redondeo predeterminada para la aritmética de punto flotante IEEE 754 que utilizan la mayoría de las computadoras modernas. Según esa regla,
$$beginalineado 0,5 &aprox. 0 y 1,5 &aprox. 2 y 2,5 &aprox. 2 y 3,5 &aprox. 4 \ -0,5 &aprox. 0 y -1,5 &aprox. -2 y -2,5 & aprox. -2 & -3.5 &aprox. -4. \ endalineado$$
De los seis métodos descritos en la respuesta de Ilmari, uno tiene dos ventajas notables: la regla de “redondear desde cero”.
- Solo necesitamos mirar un solo lugar para determinar en qué dirección girar.
Cuando nos enfrentamos, por ejemplo, a 0,15X, donde X podría ser cualquier dígito, no necesitamos preocuparnos por lo que podría ser X al redondear a 1 decimal. Si X es cero, la regla nos dice que redondeemos a 0,2 y si no es cero, redondeamos a 0,2 de todos modos.
Esto también se aplica a la regla de “redondeo hacia arriba”, pero solo para números positivos. Cualquiera de las otras reglas podría requerir que examinemos X para determinar si debemos o no redondear a 0.1 o 0.2.
Esta ventaja se mantiene true para números negativos con la regla de “redondear desde cero”. -0.15X siempre se redondeará a -0.2 independientemente de X. Esto funciona con la regla “redondear hacia abajo” y “redondear hacia cero” para números negativos, pero no con ninguna otra regla.
“Redondear desde cero” es la única regla que tiene este beneficio tanto para números positivos como negativos.
- falta de sesgo
Con la regla de “redondear desde cero”, la mitad de todos los números se redondearán hacia arriba y la mitad hacia abajo cuando se encuentre el dígito 5. Esto significa que para una selección aleatoria de números que redondeas al mismo lugar, la cantidad promedio esperada que redondearás es 0. Esto se debe a que cada dígito que redondeas hacia abajo está emparejado con un dígito que redondearás hacia arriba (cantidad redondeado entre paréntesis):
1 9 (-1 +1)
2 8 (-2 +2)
3 7 (-3 +3)
4 6 (-4 +4)
5 5 (-5 +5) <-- for negative and positive numbers respectively
Esta ventaja existe con algunas de las otras reglas, pero con las otras pierdes la primera ventaja. Con "redondear hacia arriba" o "redondear hacia abajo" se introduce un sesgo porque el dígito 5 siempre dará como resultado un +5 o un -5 respectivamente.
Tenga en cuenta que esto solo funciona si espera encontrar números positivos y negativos con la misma probabilidad.