You usually shouldn't compare two floating numbers for equality. You say that without a transform, your code returns (0,0) but it really returns (0.0, 0.0) i.e. two floats. With a transform, it also returns two floats, and they are close to zero

Is this really a problem, in the sense that it causes difficulties for a user? If you really need to compare the results, you should compare for equality within a small tolerance, or epsilon. This is much discussed on the web.