perl6.suОсвоим perl6 к 2015 году!

floor


       Нашёлся ответ на вопрос как сделать число более целым. 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

   функции для работы с числами, ceiling, floor, round, truncate      charta situs       nota XXIV, nota XXIX   

    RSS     stdin@perl6.su    © Alexius Karmanov, 2010-2011