Pregunta

¿Qué es una buena manera de siempre hacer la división entera en Perl?

Por ejemplo, quiero:

real / int = int

int / real = int

int / int = int
¿Fue útil?

Solución 2

Puede convertir enteros en Perl:

int(5/1.5) = 3;

Otros consejos

El ámbito léxico integer pragma fuerzas Perl de usar la aritmética de enteros en su alcance:

print 3.0/2.1 . "\n";    # => 1.42857142857143
{
  use integer;
  print 3.0/2.1 . "\n";  # => 1
}
print 3.0/2.1 . "\n";    # => 1.42857142857143

int(x+.5) redondeará valores positivos hacia el número entero más cercano. El redondeo hacia arriba es más difícil.

Para redondear hacia cero:

int($x)

Para las soluciones a continuación, incluir la siguiente declaración:

use POSIX;

Para redondear hacia abajo: POSIX::floor($x)

Para redondear: POSIX::ceil($x)

Para redondear lejos de cero: POSIX::floor($x) - int($x) + POSIX::ceil($x)

Para redondear al entero más próximo: POSIX::floor($x+.5)

Tenga en cuenta que no int($x+.5) mal para valores negativos. int(-2.1+.5) es int(-1.6), que es -1.

Puede:

use integer;

se explica por Michael Ratanapintha o bien utilizar manualmente:

$a=3.7;
$b=2.1;

$c=int(int($a)/int($b));

aviso, 'int' no está lanzando. esto es función de conversión de número a la forma de número entero. esto es porque Perl 5 no tiene división de enteros separado. excepción es cuando el 'uso entero'. Entonces perderá división de bienes.

Espero que funcione

int (9/4) = 2.

Gracias Manojkumar

Por ejemplo: 9/4 = 2,25

int (9) / int (4) = 2

9/4 - resto / deniminator = 2

9/4 - 9% 4/4 = 2

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top