Como devo fazer a divisão inteira em Perl?
-
22-08-2019 - |
Pergunta
O que é uma boa maneira de sempre fazer inteiro divisão em Perl?
Por exemplo, eu quero:
real / int = int
int / real = int
int / int = int
Solução 2
Você pode lançar ints em Perl:
int(5/1.5) = 3;
Outras dicas
O escopo léxico integer
pragma forças Perl para uso inteiro aritmética em seu escopo:
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)
vai rodada positivo valores em direção ao número inteiro mais próximo. Arredondamento para cima é mais difícil.
Para redonda em direção a zero:
int($x)
Para as soluções abaixo, incluir a seguinte declaração:
use POSIX;
Para baixo rodada: POSIX::floor($x)
Para se rodada: POSIX::ceil($x)
Para completar longe de zero: POSIX::floor($x) - int($x) + POSIX::ceil($x)
Para off rodada para o número inteiro mais próximo: POSIX::floor($x+.5)
Note que int($x+.5)
falhar mal para valores negativos. int(-2.1+.5)
é int(-1.6)
, que é -1.
Você pode:
use integer;
é explicado por Michael Ratanapintha ou utilização outra manualmente:
$a=3.7;
$b=2.1;
$c=int(int($a)/int($b));
aviso prévio, 'int' não está lançando. esta é função para converter a forma número inteiro. isso é porque Perl 5 não tem divisão inteira separado. exceção é quando você usar um inteiro ". Então você vai perder divisão real.
Hope funciona
int (9/4) = 2.
Graças Manojkumar
Por exemplo, 9/4 = 2,25
int (9) / int (4) = 2
4/9 - restante / deniminator = 2
9 na / 4-9% 4/4 = 2