support negative number