consumeNumber handles negative and decimal