CFrame:PointToObjectSpace Behaving Weirdly

So I have these two parts.


You would assume that using :PointToObjectSpace from the larger part to the smaller part would return (0,-1,0), since it’s one stud below it. But no. It returns this.

0, -0.99999988079071, 6.556510925293e-07
print(workspace.P1.CFrame:PointToObjectSpace(workspace.P2.Position))

Yes, I know about floating point variation, but I have no idea why Z is 6.556510925293e-07
P1 (The larger part)'s orientation is (22.5, 0, 0)
and P2’s orientation is the same. So I have no idea why this is behaving weirdly and I need to use this for my building system.

Wait I know now it’s because 0.00000191995

( ) % AC
7 8 9 ÷
4 5 6 ×
1 2 3
0 . = +