protected int determineScale()

in src/main/java/org/apache/commons/validator/routines/AbstractNumberValidator.java [82:106]


    protected int determineScale(final NumberFormat format) {
        if (!isStrict()) {
            return -1;
        }
        if (!isAllowFractions() || format.isParseIntegerOnly()) {
            return 0;
        }
        final int minimumFraction = format.getMinimumFractionDigits();
        final int maximumFraction = format.getMaximumFractionDigits();
        if (minimumFraction != maximumFraction) {
            return -1;
        }
        int scale = minimumFraction;
        if (format instanceof DecimalFormat) {
            final int multiplier = ((DecimalFormat) format).getMultiplier();
            if (multiplier == 100) { // CHECKSTYLE IGNORE MagicNumber
                scale += 2; // CHECKSTYLE IGNORE MagicNumber
            } else if (multiplier == 1000) { // CHECKSTYLE IGNORE MagicNumber
                scale += 3; // CHECKSTYLE IGNORE MagicNumber
            }
        } else if (formatType == PERCENT_FORMAT) {
            scale += 2; // CHECKSTYLE IGNORE MagicNumber
        }
        return scale;
    }