Come devo fare divisione intera in Perl?
-
22-08-2019 - |
Domanda
Che cosa è un buon modo per sempre divisione intera in Perl?
Per esempio, io voglio:
real / int = int
int / real = int
int / int = int
Soluzione 2
Si può lanciare interi in Perl:
int(5/1.5) = 3;
Altri suggerimenti
Il scope lessicale integer
pragma forze Perl da usare aritmetica intera nella sua portata:
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)
arrotonda valori positivi verso il numero intero più vicino. Arrotondamento è più difficile.
Per arrotondare verso lo zero:
int($x)
Per le soluzioni di seguito, la seguente dicitura:
use POSIX;
Per arrotondare: POSIX::floor($x)
Per arrotondare: POSIX::ceil($x)
Per arrotondare via da zero: POSIX::floor($x) - int($x) + POSIX::ceil($x)
Per concludere all'intero più vicino: POSIX::floor($x+.5)
Si noti che int($x+.5)
non male per i valori negativi. int(-2.1+.5)
è int(-1.6)
, che è -1.
è possibile:
use integer;
è spiegato da Michael Ratanapintha oppure utilizzare manualmente:
$a=3.7;
$b=2.1;
$c=int(int($a)/int($b));
avviso, 'int' non è colata. questo è funzione per la conversione a numero intero modulo. questo perché Perl 5 non ha divisione intera separata. eccezione è quando si usa 'intero'. Poi si perde divisione reale.
Spero che funziona
int (9/4) = 2.
Grazie Manoj Kumar
Ad esempio, 9/4 = 2.25
int (9) / int (4) = 2
9/4 - resto / deniminator = 2
9 / 4-9% 4/4 = 2