<div dir="ltr">Ну да, про truncate понятно, не понятно, почему в 5.18 в нашем случае в большую сторону округляет.<div>При этом, если явно подставить дробное число, тоже транкейтит, так же как и в 5.14:</div><div><br></div><div><div>[scripter@dev-vbox:~]$ perl -v | fgrep version && perl -E 'srand(3.9); say rand'</div><div>This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi</div><div>0.783234962103055</div></div><div><br></div><div><div>scripter@work-desktop:~$ perl -v | fgrep version && perl -E 'srand(3.9); say rand'</div><div>This is perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi</div><div>0.783234962103055</div></div><div><br></div><div><br></div><div>И даже если вычислять аргумент, все равно идентичное поведение:</div><div><br></div><div><div>[scripter@dev-vbox:~]$ perl -v | fgrep version && perl -E 'srand(7.8/2); say rand'</div><div>This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi</div><div>0.783234962103055</div></div><div><br></div><div><div>scripter@work-desktop:~$ perl -v | fgrep version && perl -E 'srand(7.8/2); say rand'</div><div>This is perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi</div><div>0.783234962103055</div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2 октября 2014 г., 13:15 пользователь Victor Efimov <span dir="ltr"><<a href="mailto:victor@vsespb.ru" target="_blank">victor@vsespb.ru</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">в perldoc<br>
==<br>
Most implementations of srand take an integer and will silently<br>
truncate decimal numbers. This means srand(42) will usually produce<br>
the same results as srand(42.1). To be safe, always pass srand an<br>
integer.<br>
==<br>
<br>
p.s. мучался с предсказуемыми последовательностями псевдослучайных<br>
чисел - советовали другой генератор<br>
<a href="http://perlmonks.org/?node_id=1054438" target="_blank">http://perlmonks.org/?node_id=1054438</a><br>
<br>
<br>
2 октября 2014 г., 13:05 пользователь Вадим Власов<br>
<<a href="mailto:scripter.vrn@gmail.com">scripter.vrn@gmail.com</a>> написал:<br>
<div class="HOEnZb"><div class="h5">> Привет всем, столкнулись со странным эффектом в 5.18<br>
><br>
> [scripter@dev-vbox:~]$ perl -v | fgrep ver<br>
> This is perl 5, version 14, subversion 2 (v5.14.2) built for<br>
> x86_64-linux-gnu-thread-multi<br>
> [scripter@dev-vbox:~]$ perl -E '$dd = "20141002"; say 0.8 * $dd * $dd + 1.55<br>
> * $dd + 59.3; say int( 0.8 * $dd * $dd + 1.55 * $dd + 59.3 );'<br>
> 324528000469816<br>
> 324528000469815<br>
> [scripter@dev-vbox:~]$ perl -E '$dd = "20141002"; srand( 0.8 * $dd * $dd +<br>
> 1.55 * $dd + 59.3 ); say rand()'<br>
> 0.261590199385868<br>
> [scripter@dev-vbox:~]$ perl -E '$dd = "20141002"; srand( int(0.8 * $dd * $dd<br>
> + 1.55 * $dd + 59.3) ); say rand()'<br>
> 0.261590199385868<br>
><br>
> В 5.14 аргумент srand приводится к целому с отбраыванием дробной части, так<br>
> же как с int.<br>
><br>
><br>
> scripter@work-desktop:~$ perl -v | fgrep ver<br>
> This is perl 5, version 18, subversion 2 (v5.18.2) built for<br>
> x86_64-linux-gnu-thread-multi<br>
> scripter@work-desktop:~$ perl -E '$dd = "20141002"; say 0.8 * $dd * $dd +<br>
> 1.55 * $dd + 59.3; say int( 0.8 * $dd * $dd + 1.55 * $dd + 59.3 );'<br>
> 324528000469816<br>
> 324528000469815<br>
> scripter@work-desktop:~$ perl -E '$dd = "20141002"; srand( 0.8 * $dd * $dd +<br>
> 1.55 * $dd + 59.3 ); say rand()'<br>
> 0.132392508051456<br>
> scripter@work-desktop:~$ perl -E '$dd = "20141002"; srand( int(0.8 * $dd *<br>
> $dd + 1.55 * $dd + 59.3) ); say rand()'<br>
> 0.261590199385868<br>
> scripter@work-desktop:~$ perl -E '$dd = "20141002"; srand( int(0.8 * $dd *<br>
> $dd + 1.55 * $dd + 59.3)+1 ); say rand()'<br>
> 0.132392508051456<br>
><br>
> А в 5.18 округляется, так же как при выводе. Почему так? Такое поведение<br>
> описано где-то?<br>
><br>
> --<br>
>   С уважением,<br>
>   Вадим Власов<br>
>   т.: +7 (916) 424-00-72<br>
><br>
</div></div><span class="HOEnZb"><font color="#888888">> --<br>
> Moscow.pm mailing list<br>
> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
><br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div>  С уважением,<br></div><div>  Вадим Власов</div><div>  т.: +7 (916) 424-00-72</div></div>
</div>