generalize IntegerSpinner to NumberSpinner, add options.decimalPlaces