Yes, val3 - val4 is greater than accuracy, but that leaves me with the problem that val3 == val1 is true, val1 == val4 is true, but val3 == val4 is false. A==B, B==C therefore A==C is a basic mathematical principal that this is breaking, and I'm afraid will cause problems, and I can't figure out a way around it. Truncation isn't quite right either, that way 1.0000000001 and 1.00000000009 wouldn't match up. I've since rewritten the equality method, to get much better results but no matter how I change it, I still can't get around that basic problem. BTW, I've thought about using the Decimal structure for internal calculations, but I don't know how much it would gain me when most of the intermediate results will be stored outside of my class and will be in double. ----- In the land of the blind, the one eyed man is king.