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
È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top