[Kiev-pm] Целочисленная бесконечность

Denis Sokolovsky ganellon at gmail.com
Mon Dec 17 14:08:32 PST 2012


Я так понимаю что с точки зрения perl все красиво потому что литерал
"inf" трактуется специально всеми арифметическими функциями не
генерируя предупреждения. Например:

$ perl -we ' $x = "inf"; $,=$\="\n"; print $x > 0, $x/2, $x+10, $x/"inf" '
1
inf
inf
nan

Т.е. получается что "inf" это правомерное целое число, а значит в
perldoc -f int написана вся правда ;).

2012/12/13 Oleg Alistratov <ali ÎÁ ali.org.ua>:
> Мда. Это у меня мелкие претензии. Дело не в inf и nan.
> Вообще любой литерал, который не влазит в IV, создает NV.
>
> Так что в perldoc -f int написана не вся правда :)
>
> 13.12.2012, 11:46, "Oleg Alistratov" <ali ÎÁ ali.org.ua>:
>> Внезапно:
>>
>> % perl -e 'print int("Inf"), "\n";'
>> inf
>>
>> Чудес там, конечно, нет, возвращается NV:
>>
>> % perl -mDevel::Peek -e '$a = int("Inf"); print Devel::Peek::Dump($a), "\n";'
>> SV = NV(0x7f9cf1830e00) at 0x7f9cf18290e8
>>   REFCNT = 1
>>   FLAGS = (NOK,pNOK)
>>   NV = inf
>>
>> но получается, что функции int() нельзя доверять в плане возвращения целых чисел.
>> Кто-нибудь знает, откуда растет это явление?
>>
>> --
>> Oleg Alistratov
>
> --
> Oleg Alistratov
> _______________________________________________
> Kiev-pm mailing list
> Kiev-pm ÎÁ pm.org
> http://mail.pm.org/mailman/listinfo/kiev-pm



-- 
Denis Sokolovsky


More information about the Kiev-pm mailing list