enable float values for percentages, guard clause against negative values