Bueno, en tu segundo metodo, es +=0, no estoy seguro, en javascriot lo que he usado para asegurar los enteros es hacer *1 ...
Entonces usa esto para probar que pasa:
$otro = $a[$i]["Impo_mes"];
echo $otro; //Di que devuelve
$otro = $a[$i]["Impo_mes"] * 1;
echo $otro; //Di que devuelve
$otro = (int)$a[$i]["Impo_mes"] * 1;
echo $otro; //Di que devuelve
//En alguno debe salir bien... que raro, no me ha pasado ese error, a lo mejor en int solo son positivos y ahi esta el error, no lo se, la verdad no se, y esepro que alguien sepa porque cualquiera de esos metodos raros del += 0, y * 1 no los recomendaria usar en todo un codigo, debe haber una manera sencilla y ya hecha por php para ese problema
Ok... tambien revisa si no hay espacios en el valor del arreglo, es decir, verifica que todo tu arreglo tenga valores validos, para ver bien los valores usa:
echo "[" . $otro . "]"; //Asi verificas que no tenga espacios, etc.
Bueno, prueba y dinos que pasa