/** * Convert a {@link Number} value * @param value Value to convert * @param decimals Decimal positions (-1 for default) * @param features Number format features * @return String value */ private static String convertNumber(Number value, int decimals, NumberFormatFeature[] features) { if (value != null) { return LocalizationContext.getCurrent().filter(l -> l.isLocalized()) .map((c) -> c.format(value, decimals, features)) .orElse(getNumberFormatForDefaultLocale(value, NumberFormatFeature.hasFeature(NumberFormatFeature.DISABLE_GROUPING, features), NumberFormatFeature.hasFeature(NumberFormatFeature.HIDE_DECIMALS_WHEN_ALL_ZERO, features)) .format(value)); } return null; }
if (NumberFormatFeature.hasFeature(NumberFormatFeature.PERCENT_STYLE, features)) { format = NumberFormat.getPercentInstance(checkLocalized()); if (NumberFormatFeature.hasFeature(NumberFormatFeature.HIDE_DECIMALS_WHEN_ALL_ZERO, features) && !FormatUtils.hasDecimals(number.doubleValue())) { format.setMaximumFractionDigits(0); format = NumberFormat.getInstance(checkLocalized()); if (NumberFormatFeature.hasFeature(NumberFormatFeature.HIDE_DECIMALS_WHEN_ALL_ZERO, features) && !FormatUtils.hasDecimals(number.doubleValue())) { format.setMaximumFractionDigits(0); if (NumberFormatFeature.hasFeature(NumberFormatFeature.DISABLE_GROUPING, features)) { format.setGroupingUsed(false);