Why is this simple calculation of two doubles inaccurate? [duplicate]

Floating point numbers (in this case doubles) cannot represent decimal values exactly. I would recommend reading David Goldberg’s What every computer scientist should know about floating-point arithmetic

This applies to all languages that deal with floating point numbers whether it be C#, Java, JavaScript, … This is essential reading for any developer working with floating point arithmetic.

As VinayC suggests, if you need an exact (and slower) representation, use System.Decimal (aka decimal in C#) instead.

Leave a Comment