Yep, it's known as "double rounding" problems. You get it from converting your double to decimal, performing math on it, then converting back to double.
A few related links:
Here: http://www.exploringbinary.com/double-rounding-errors-in-floating-point-conversions/
Here: Decimal rounding errors upon division (C#)
Here: http://csharpindepth.com/Articles/General/Decimal.aspx