Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re: Equality checking for strings AND numbers

by toma (Vicar)
on Jul 13, 2007 at 08:11 UTC ( #626394=note: print w/replies, xml ) Need Help??

in reply to Equality checking for strings AND numbers

This is a difficult problem in Perl for the most general case. Numbers like 1111111111111111111e1111111111111111111 pass the 'looks_like_number' test but don't fare well in arithmetic expressions. This doesn't do what you would hope:
use strict; use warnings; use Scalar::Util qw(looks_like_number); my $c="11111111111111111e11111111111111111"; my $d="22222222222222222e22222222222222222"; if (looks_like_number($c) and looks_like_number($d) and $c == $d) { print "$c = $d\n"; }
It should work perfectly the first time! - toma

Replies are listed 'Best First'.
Re^2: Equality checking for strings AND numbers
by Anonymous Monk on Jul 13, 2007 at 14:33 UTC
    That's probably because those large numbers are essentially Infinity? At least as far as normal numerical storage goes? The looks_like_number call does allow for Infinity, and treats it like a number, and Infinity == Infinity should be true!

    I don't need to the use of any of the "big" number support, which I believe doesn't play well with the looks_like_number anyway.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://626394]
[Discipulus]: summon succeded! zentara is here!! ;=)
[LanX]: Saxana is still missing ...
[choroba]: LanX they made a sequel, it's unimaginably terrible
[choroba]: Saxana and the Spell Lexicon
[Discipulus]: sometime a dream a movie: me in south of usa taking a tea with zentara and tybalt89..
[LanX]: Sequel? OO

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (10)
As of 2018-04-20 10:54 GMT
Find Nodes?
    Voting Booth?