in reply to Number::Spell
You will find that every module on CPAN that needs to deal with integers this big either (A) requires you to pass the number as a string, or (B) uses Math::BigInt or similar, to prevent Perl from converting the integer to a float. Even notice from Math::BigInt's pod:$ perl -e 'print 10000000000000001, $/' 1e+16 $ perl -e 'print 10000000000000005, $/' 1e+16 $ perl -e 'print 10000000000000000, $/' 1e+16
Scalars holding numbers may also be passed, but note that non-integer +numbers may already have lost precision due to the conversation to float. Quot +e your input if you want BigInt to see all the digits: $x = Math::BigInt->new(12345678890123456789); # bad $x = Math::BigInt->new('12345678901234567890'); # good
blokhead
|
|---|