my @array;
for (1..100){ push @array,$_ }
@array = sort {$a<=>$b} @array;
my $tr = (@array * (1-0.68)/2);
print $tr;
print "\n";
splice @array,0,$tr;
splice @array,-$tr;
print "@array";

このコードですが、$trを表示すると16になります。
しかし$trをintすると15になります。
さらに、spliceに使われてる$trもどうも15として動いてるようです。

15.999999999という状態になっているのか。
こんな事があるなんておもいませんでした。
print すると整数のみなのに、実際は小数付きの数字という事は常に想定しておかないといけないことなのでしょうか?

print "\n\n";
print ($tr != 16);
をすれば1と表示されます。だからそんなに問題はない?
でもなんか混乱しています。何故こんなことになってるのでしょうか?