-
¿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.