Just as a teaser, running
choroba's sum under Perl 5:
DB<1> $x = 319.02 - 112.09 - 69.75 - 113.57 - 23.61;
DB<2> p $x
-1.4210854715202e-14
In both Python and Ruby, the result is -1.4210854715202004e-14, which might seem more accurate (3 more digits), but happens to be in fact a very little bit further from truth.
The same in Perl 6:
> my $x = 319.02 - 112.09 - 69.75 - 113.57 - 23.61;
0
> say sprintf "%.50f", $x
0.00000000000000000000000000000000000000000000000000
> say $x == 0;
True
Not only does Perl 6 give the correct result, even when printing 50 decimal digits, but even comparing the result with 0 gives the correct answer.