[Kiev-pm] Целочисленная бесконечность
Oleg Alistratov
ali at ali.org.ua
Tue Dec 18 04:00:25 PST 2012
Не. inf — это правомерное вещественное число.
Вот вопрос в том как раз, что в целых его нет, а я попробовал положиться на то, что результат int() всегда целый.
18.12.2012, 00:08, "Denis Sokolovsky" <ganellon ÎÁ gmail.com>:
> Я так понимаю что с точки зрения 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
> _______________________________________________
> Kiev-pm mailing list
> Kiev-pm ÎÁ pm.org
> http://mail.pm.org/mailman/listinfo/kiev-pm
--
Oleg Alistratov
More information about the Kiev-pm
mailing list