fix bug: sumUnit() not work with negative number