Well, the perl6 result surprised me, since that means it's using something more precise than double precision floating point :)
$ perl6 --version
This is Rakudo version 2018.03 built on MoarVM version 2018.03
implementing Perl 6.c.
$ perl6 -e 'print 9999999999999999.0-9999999999999998.0;print "\n";'
› perl6 -e '.say for $*PERL.compiler, 9999999999999999.0-9999999999999998.0'