Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^2: Question on simple arithmetic using perl

by perlbaski (Acolyte)
on Sep 28, 2011 at 21:43 UTC ( #928434=note: print w/ replies, xml ) Need Help??


in reply to Re: Question on simple arithmetic using perl
in thread Question on simple arithmetic using perl

Thank you Monk!! So does this mean its fine to use such arithmetic and not worry about whether perl can handle it correctly?


Comment on Re^2: Question on simple arithmetic using perl
Re^3: Question on simple arithmetic using perl
by Marshall (Prior) on Sep 28, 2011 at 23:08 UTC
    No. A float can represent a wider range of values, but a lesser number of significant digits than an integer.

    I'm not quite sure what the question is:

    #!/usr/bin/perl -w use strict; my $all_bits_are_on = -1; printf ("all_bits => %X\n", $all_bits_are_one); my $x = $all_bits_are_on + 1; print "Adding -1 to +1 is: $x\n"; __END__ all_bits => FFFFFFFF Adding -1 to +1 is: 0

      Note that perl is actually using long and double. On 32bit double has more significant digits than long.

        Yes, if you mean that a 64 bit floating point number has more significant bits in the mantissa than a 32 bit integer does, I agree. I leave looking up the definition of ANSI C long and double to the interested readers.

        Update: I looked up what Microsoft did for storage in C. "int" and "long" are both 32 bits (other folks will assign 64 bits to a "long"). A MS "float" is 32 bits and MS "double" is 64 bits with 52 bit mantissa.

        ANSI C Summary says: that an int will have at least 4 significant decimal digits and a long will have at least 9 significant decimal digits (see link for exact ANSI spec'd ranges). An int can be the same size as a long (bigger than minimum is ok).

        A float has to have 6 decimal digits of precision and a double has a minimum of 10 decimal digits of precision. So a double is guaranteed to have at least one more decimal digit of precision than a long (10 vs 9).

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://928434]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (13)
As of 2014-07-11 13:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (224 votes), past polls