Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re^2: Question on simple arithmetic using perl

by perlbaski (Sexton)
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

Replies are listed 'Best First'.
Re^3: Question on simple arithmetic using perl
by Marshall (Abbot) 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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://928434]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (8)
As of 2018-05-24 10:36 GMT
Find Nodes?
    Voting Booth?