In this case, the floating values for 3e-1 and .3 are both "wrong," i.e. not really equal to mathematical .3, but since they have the same error, subtracting one from the other happens to return 0. So the result seems correct, but only because the two inaccuracies compensate each other.
I would assume that one is a rational number while the other gets constructed and represented as a floating point number. I think you can somehow look into how Perl6 represents the values but I don't know it.