hola OscarC,
No te asustes, los valores que estas obteniendo: 1.4775425154752E-10, son realemente un cero, pero que por alguna razón de estructura de datos del compilador al hacer la suma o resta de valores de punto flotante, te entrgea esta diferencia...
Intenta no redondear/truncar los valores originales, sino el resultado de la suma en la consulta, asi:
Código SQL
[-]round((SUM(iif (M.DH = 'D', M.n_IMP, 0.00 )) - SUM(iif (M.DH = 'H', M.n_IMP, 0.00 )),2) AS DIFMN,
round(SUM(iif (M.DH = 'D', M.u_IMP, 0.00 )) - SUM(iif (M.DH = 'H', M.u_IMP, 0.00 )),2) AS DIFME
espero te sirva