
round
Нашёлся ответ на вопрос как сделать число более целым. Itaque...
| | #!/usr/bin/perl6
my @list=(10,10.4,10.5,10.6,10.9999,11);
"origin floor ceiling round".say;
for @list {
my $flo=$_.floor;
my $cei=$_.ceiling;
my $rou=$_.round;
"$_ $flo $cei $rou".say;
} | | origin floor ceiling round
10 10 10 10
10.4 10 11 10
10.5 10 11 11
10.6 10 11 11
10.9999 10 11 11
11 11 11 11 |
floor - это пол. То есть максимальное целое число, меньшее или равное данному. ceiling - это от ceil (покрывать). То есть минимальное целое число, покрывающее данное. round - округляет. Очевидно, чаще всего он и нужен.Extra http://feather.perl6.nl/syn/S32/Numeric.html
# mutatio postrema: 26 Aug 2010
Для получения целого числа из нецелового существует ещё truncate, как оказывается.
| | #!/usr/bin/perl6
my @list=<-8 -7.9 -7.5 -7.2 -7 0 9 9.1 9.5 9.8 10>;
"origin truncate".say;
for @list {
my $tru=$_.truncate;
"$_ $tru".say;
} | | origin truncate
-8 -8
-7.9 -7
-7.5 -7
-7.2 -7
-7 -7
0 0
9 9
9.1 9
9.5 9
9.8 9
10 10 |
Truncate просто обрезает нецелую часть числа. А floor для -7.9 даёт -8, потому что он ищет целые числа, меньше данного. То есть truncate действует как классический int. # mutatio postrema: 30 Jan 2012
|