Извините, что тревожу в такое время, но необходима помощь

Кто-нибудь может объяснить, почему на С++ (да и на других его сородичах)
при заданных значениях типа double (или любой другой вещественный тип)
a=0.3
b=0.2
c=0.1

то не выполняется равенсто
(a-b) = c
хотя 0.3-0.2 = 0.1 ==0.1

понимаю, что проблема в округлении, но что именно происходит в данном процессе я не понял

Лига Добра, жду вашей поддержки)