Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^3: int() function

by jszinger (Scribe)
on Oct 27, 2020 at 15:43 UTC ( #11123212=note: print w/replies, xml ) Need Help??


in reply to Re^2: int() function
in thread int() function

On my CentOS 7 box with perl-5.16.3
$ perl -E'say sprintf("%.100g", 0.15)' 0.14999999999999999 $ perl -E'say sprintf("%.100f", 0.15)' 0.14999999999999999444888487687421729788184165954589843750000000000000 +00000000000000000000000000000000 $ perl --version | head -3 This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-li +nux-thread-multi (with 40 registered patches, see perl -V for more detail)
On my Fedora 32 box with perl-5.30.3
$ perl -E'say sprintf("%.100g", 0.15)' 0.1499999999999999944488848768742172978818416595458984375 $ perl -E'say sprintf("%.100f", 0.15)' 0.14999999999999999444888487687421729788184165954589843750000000000000 +00000000000000000000000000000000 $ perl -E'say sprintf("%.100a", 0.15)' 0x1.333333333333300000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000p-3 $ perl -v|head -3 This is perl 5, version 30, subversion 3 (v5.30.3) built for x86_64-li +nux-thread-multi (with 96 registered patches, see perl -V for more detail)

Replies are listed 'Best First'.
Re^4: int() function
by syphilis (Bishop) on Oct 28, 2020 at 00:16 UTC
    On my CentOS 7 box with perl-5.16.3

    That's certainly one instance where you do benefit from formatting with "%.100f" instead of "%.100g".
    Thank you for pointing this out.
    Turns out that it's the same on my Ubuntu box with perl-5.18.0.
    But with perl-5.32.0 on the same box, "%.100g" formatting works fine - so, there's a change in perl's behaviour between 5.18 and 5.32.
    I would guess that "%.100g" formatting on your CentOS 7 box would also work fine on perl-5.32.

    But I should point out that, even though "%.100g" formatting works ok on Ubuntu with perl-5.32.0, "%.*g" formatting is still buggy if you request a precision in the range 18..91 (inclusive).
    $ perl -le 'printf "%.91f\n", 0.15;' 0.14999999999999999444888487687421729788184165954589843750000000000000 +00000000000000000000000 $ perl -le 'printf "%.91g\n", 0.15;' 0.14999999999999999 $ perl -le 'printf "%.92g\n", 0.15;' 0.1499999999999999944488848768742172978818416595458984375
    Cheers,
    Rob

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2021-04-23 03:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?