Tecnología

Inicio

¿Cómo se va a redondear un número entero en Perl

Perl no tiene una función incorporada específicamente diseñado para redondear los números de punto flotante a enteros, pero se puede escribir su propia función que incorpora la función sprintf para redondear estos números a la unidad más próxima. La función sprintf toma dos argumentos, un formato y una lista. La lista es simplemente el número que desea redondear hacia arriba o hacia abajo. Utilice "% .0f" como el formato, lo que indica a la función que el número es de punto flotante y desea redondear a cero dígitos después del punto decimal.

Instrucciones

1 Abrir un archivo de programa Perl. Escriba el siguiente código:

{sub intCheck

mi $ num = desplazamiento;

volver ($ num = ~ m / ^ \ d + $ /);

}

Esto crea una función llamada "intCheck" que obtiene por primera vez un argumento pasado a él y lo guarda en una variable llamada "$ num", a continuación, devuelve "true" si ese número es un número entero o "falso" si no lo es.

2 Escriba el siguiente código:

{sub ronda

mi $ var = desplazamiento;

si (intCheck ($ var - 0,5)) {$ var = var $ + 0,1; }

sprintf ( ".% 0f", $ var) return;

}

Esto crea una función llamada "ronda". Se pone el argumento pasado a él y lo guarda en la variable "$ var". A continuación, llama a la función intCheck y pasa la variable número menos 0,5. Si la función devuelve intCheck "verdadero", el $ var tiene 0,1 añadieron a la misma. La función round continuación, redondea la variable al número entero más próximo y lo devuelve.

3 Escriba el siguiente código:

ronda de impresión (4.49). "\norte";

ronda de impresión (4.51). "\norte";

ronda de impresión (4,5). "\norte";

Estas líneas probar la función de redondeo. La primera línea se redondea a cuatro y los dos siguientes líneas redondas de hasta cinco años.

4 Guarde el archivo de Perl.

Consejos y advertencias

  • La función sprintf trabaja para redondear los números de punto flotante a enteros casi a la perfección. Sin embargo, cuando cuando el número es exactamente a medio camino entre dos números enteros, se redondea hacia abajo en vez de hacia arriba. Restando 0.5 a partir del número termina pasando este número para intCheck, intCheck devuelve "verdadero", lo que significa que la función redonda sabe para redondear hacia arriba en lugar de hacia abajo.
  • Puede modificar esta función para redondear los números de punto flotante a cualquier número de cifras decimales. Eliminar si la declaración de la función de redondeo y el cambio ".0f%" a "% .1f" para redondear a un decimal, o "% .2f" para redondear con dos decimales, y así sucesivamente.