generalize IntegerNode to NumberNode, add options.decimalPlaces