@juanki Parece que he encontrado una explicación al problema: http://www.javamexico.org/blogs/luxspes/por_que_usar_bigdecimal_y_no_double_para_calculos_aritmeticos_financieros Por ahora lo resuelvo así: QListA.insert(c, QString::number(QListB.at(c) - QListC.at(c), 'f', 2).toDouble()); Utilizo QString para forzar los decimales y redondear. Encontré esta solución aquí: http://www.qtforum.org/article/29565/output-a-double-to-only-2-decimal-points.html Sigo sin estar seguro si esta es la mejor manera de hacer un cálculo monetario de precisión. ¿Hay alguna otra manera de hacer esta operación sin margen de error?