Perlコーディング初心者質問スレ Part 55
レス数が950を超えています。1000を超えると書き込みができなくなります。
0989nobodyさん
2007/09/16(日) 17:10:58ID:???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と表示されます。だからそんなに問題はない?
でもなんか混乱しています。何故こんなことになってるのでしょうか?
レス数が950を超えています。1000を超えると書き込みができなくなります。