double r = 11.631;
double theta = 21.4;
In the debugger, these are shown as 11.631000000000000
and 21.399999618530273
.
How can I avoid this?
These accuracy problems are due to the internal representation of floating point numbers and there's not much you can do to avoid it.
By the way, printing these values at run-time often still leads to the correct results, at least using modern C++ compilers. For most operations, this isn't much of an issue.