Never use equals to compare points (or real numbers for that matter). You will run into “floating point fuzz” , somewhere out beyond 12 decimal places, one number will be different. Always use something like EpsilonEquals, or that the absolute value of one subtracted from the other is less than a given tolerance. For points you can use ptA.DistanceTo(ptB)<tolerance
to compare.
The string comparison probably succeeds because at some point the numbers are truncated.