Perl has three internal numeric types, which vary based on how Perl was compiled.
- IV - an "integer value" which can be 32-bit or 64-bit. It can optionally be 64-bit on 32-bit systems (for a small performance hit) but it will always be 64-bit on 64-bit systems. It will have a maximum value of 2^31-1 or 2^63-1 because of one bit being lost for twos-complement negative numbers.
- UV - an "unsigned value" which likewise can be 32-bit or 64-bit, but lets you go up to the full 2^64-1 maximum value. This does not let your numbers go more negative, only more positive.
- NV - either a 64-bit floating point (IEEE-754) or 80-bit floating point. 64-bit is much faster so most systems compile it with
that. 64-bit floats can hold up to 53-bit integers. 80-bit floats can hold up to 64-bit integers.
So, on a 32-bit system configured for 32-bit IV, the 64-bit NV lets you store larger integers in a float even though NV is meant to be used for fractional values. On a 64-bit system, the IV is always 64-bit so there's no advantage to using NVs to store integers.
You can check the details of how your perl was compiled using the Config module.
perl -E 'use Config; say $Config{ivsize}; say $Config{nvsize}'
FWIW, the only 32-bit system I still have access to has a perl compiled with 64-bit IV.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
|
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.