in reply to [OT] Accessing python3's print() of floating point values

Hi,

Use perl6:

perl6 -e "say 2 ** -1074"

Outputs: 5e-324

Replies are listed 'Best First'.
Re^2: [OT] Accessing python3's print() of floating point values
by syphilis (Archbishop) on Jan 19, 2019 at 00:22 UTC
    perl6 -e "say 2 ** -1074"

    Kudos to perl6 if it's now implementing the algorithm that outputs as few decimal digits as are necessary.
    My older perl6 (Perl 6.c) gives me:
    $ perl6 -e "say 2 ** -1074" Numeric overflow in block <unit> at -e line 1 Actually thrown at: in block <unit> at -e line 1
    What does your perl6 output for:
    perl6 -e "say 2 ** 0.5"
    Does perl6 yet provide "long double" and "__float128" builds ? They are the types I'm currently unable to independently verify.
    (As I mentioned in my original post, for "doubles" I can already verify my outputs against python3.)

    Cheers,
    Rob

      I use perl6::version=2018.04.1 and also perl6::version=2018.10.1

      The results for version 2018.04.1 (isn't this rather old?) are:

      For perl6 -e "say 2 ** 0.5": 1.4142135623730951

      For perl6 -e "say 2 ** -1074": 5e-324

      So you should give a somewhat newer version a try

      My results are from the rakudo-star-2018.04-x86_64 (JIT).msi on Windows

        For perl6 -e "say 2 ** 0.5": 1.4142135623730951
        For perl6 -e "say 2 ** -1074": 5e-324


        Yes, those are the results that perl5 ought also (IMO) be producing - as opposed to the inaccurate "1.4142135623731" and the pointlessly lengthy "4.94065645841247e-324" that are currently output.

        However, as I mentioned earlier, I can already verify double-precision values by comparing to python3 output.
        I'm looking for something that will enable me to verify long double-precision and __float128-precision values. (Last time I checked I couldn't find any such builds of perl6.)

        Cheers,
        Rob