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

Re: Reliably parsing an integer

by leszekdubiel (Scribe)
on Jul 03, 2020 at 16:12 UTC ( #11118880=note: print w/replies, xml ) Need Help??


in reply to Reliably parsing an integer

Try to craft this solution to your needs -- it reliably parses floating point, change that to integer.
#!/usr/bin/perl use strict; use Config; # check architecture and die if not as expected $Config{nvtype} eq "double" && $Config{doublesize} == 8 && $Config{ivtype} eq "long" && $Config{longsize} == 8 or die "not compatibile perl"; my $a = "-000123.456000"; # format good or die $a =~ /\G([-+]?(?=[0-9]|\.[0-9])[0-9]*(\.[0-9]*)?)/gc or die "not a nu +mber"; my $n = $1; # max length is 15, because architecure is such... convert string to n +umber length $n <= 15 + 2 or die "number too long"; $n = 0 + $n; # check if number fits within 15 digits abs $n > 99999999999999.9 and die "number out of range"; print "$a ---> $n is OK\n"; .... root@orion:~# perl /tmp/aaaa -000123.456000 ---> -123.456 is OK

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2020-11-01 01:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favourite web site is:












    Results (291 votes). Check out past polls.

    Notices?