[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