Curiosamente números com ponto flutuante decimais não são um problema. O problema relatado acontece em número de ponto flutuante binários. Como ambas tem casas depois da vírgula e costumamos chamar isso de decimais, parece que números decimais são problema. A solução para o problema relatado quase empre é usar justamete um tipo chamado decimal.
C++ não tem nada padrão, tem que pegar uma biblioteca externa ou se virar bem manualmente com inteiros, o que é arriscadonão e não é simples.