@Override public StringBuffer format(long value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); buffer.append(ndf.formatLong(value, position)); return buffer; }
@Override public final StringBuffer format(Object number, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); if (number instanceof BigInteger) { BigInteger bigInteger = (BigInteger) number; char[] chars = (bigInteger.bitLength() < 64) ? ndf.formatLong(bigInteger.longValue(), position) : ndf.formatBigInteger(bigInteger, position); buffer.append(chars); return buffer; } else if (number instanceof BigDecimal) { buffer.append(ndf.formatBigDecimal((BigDecimal) number, position)); return buffer; } return super.format(number, buffer, position); }
@Override public StringBuffer format(double value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); // All float/double/Float/Double formatting ends up here... if (roundingMode == RoundingMode.UNNECESSARY) { // ICU4C doesn't support this rounding mode, so we have to fake it. try { setRoundingMode(RoundingMode.UP); String upResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); setRoundingMode(RoundingMode.DOWN); String downResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); if (!upResult.equals(downResult)) { throw new ArithmeticException("rounding mode UNNECESSARY but rounding required"); } } finally { setRoundingMode(RoundingMode.UNNECESSARY); } } buffer.append(ndf.formatDouble(value, position)); return buffer; }
@Override public StringBuffer format(long value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); buffer.append(ndf.formatLong(value, position)); return buffer; }
@Override public StringBuffer format(long value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); buffer.append(ndf.formatLong(value, position)); return buffer; }
@Override public StringBuffer format(long value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); buffer.append(ndf.formatLong(value, position)); return buffer; }
@Override public StringBuffer format(long value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); buffer.append(ndf.formatLong(value, position)); return buffer; }
@Override public StringBuffer format(long value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); buffer.append(ndf.formatLong(value, position)); return buffer; }
@Override public StringBuffer format(long value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); buffer.append(ndf.formatLong(value, position)); return buffer; }
@Override public final StringBuffer format(Object number, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); if (number instanceof BigInteger) { BigInteger bigInteger = (BigInteger) number; char[] chars = (bigInteger.bitLength() < 64) ? ndf.formatLong(bigInteger.longValue(), position) : ndf.formatBigInteger(bigInteger, position); buffer.append(chars); return buffer; } else if (number instanceof BigDecimal) { buffer.append(ndf.formatBigDecimal((BigDecimal) number, position)); return buffer; } return super.format(number, buffer, position); }
@Override public final StringBuffer format(Object number, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); if (number instanceof BigInteger) { BigInteger bigInteger = (BigInteger) number; char[] chars = (bigInteger.bitLength() < 64) ? ndf.formatLong(bigInteger.longValue(), position) : ndf.formatBigInteger(bigInteger, position); buffer.append(chars); return buffer; } else if (number instanceof BigDecimal) { buffer.append(ndf.formatBigDecimal((BigDecimal) number, position)); return buffer; } return super.format(number, buffer, position); }
@Override public final StringBuffer format(Object number, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); if (number instanceof BigInteger) { BigInteger bigInteger = (BigInteger) number; char[] chars = (bigInteger.bitLength() < 64) ? ndf.formatLong(bigInteger.longValue(), position) : ndf.formatBigInteger(bigInteger, position); buffer.append(chars); return buffer; } else if (number instanceof BigDecimal) { buffer.append(ndf.formatBigDecimal((BigDecimal) number, position)); return buffer; } return super.format(number, buffer, position); }
@Override public StringBuffer format(double value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); // All float/double/Float/Double formatting ends up here... if (roundingMode == RoundingMode.UNNECESSARY) { // ICU4C doesn't support this rounding mode, so we have to fake it. try { setRoundingMode(RoundingMode.UP); String upResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); setRoundingMode(RoundingMode.DOWN); String downResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); if (!upResult.equals(downResult)) { throw new ArithmeticException("rounding mode UNNECESSARY but rounding required"); } } finally { setRoundingMode(RoundingMode.UNNECESSARY); } } buffer.append(ndf.formatDouble(value, position)); return buffer; }
@Override public final StringBuffer format(Object number, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); if (number instanceof BigInteger) { BigInteger bigInteger = (BigInteger) number; char[] chars = (bigInteger.bitLength() < 64) ? ndf.formatLong(bigInteger.longValue(), position) : ndf.formatBigInteger(bigInteger, position); buffer.append(chars); return buffer; } else if (number instanceof BigDecimal) { buffer.append(ndf.formatBigDecimal((BigDecimal) number, position)); return buffer; } return super.format(number, buffer, position); }
@Override public final StringBuffer format(Object number, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); if (number instanceof BigInteger) { BigInteger bigInteger = (BigInteger) number; char[] chars = (bigInteger.bitLength() < 64) ? ndf.formatLong(bigInteger.longValue(), position) : ndf.formatBigInteger(bigInteger, position); buffer.append(chars); return buffer; } else if (number instanceof BigDecimal) { buffer.append(ndf.formatBigDecimal((BigDecimal) number, position)); return buffer; } return super.format(number, buffer, position); }
@Override public final StringBuffer format(Object number, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); if (number instanceof BigInteger) { BigInteger bigInteger = (BigInteger) number; char[] chars = (bigInteger.bitLength() < 64) ? ndf.formatLong(bigInteger.longValue(), position) : ndf.formatBigInteger(bigInteger, position); buffer.append(chars); return buffer; } else if (number instanceof BigDecimal) { buffer.append(ndf.formatBigDecimal((BigDecimal) number, position)); return buffer; } return super.format(number, buffer, position); }
@Override public StringBuffer format(double value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); // All float/double/Float/Double formatting ends up here... if (roundingMode == RoundingMode.UNNECESSARY) { // ICU4C doesn't support this rounding mode, so we have to fake it. try { setRoundingMode(RoundingMode.UP); String upResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); setRoundingMode(RoundingMode.DOWN); String downResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); if (!upResult.equals(downResult)) { throw new ArithmeticException("rounding mode UNNECESSARY but rounding required"); } } finally { setRoundingMode(RoundingMode.UNNECESSARY); } } buffer.append(ndf.formatDouble(value, position)); return buffer; }
@Override public StringBuffer format(double value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); // All float/double/Float/Double formatting ends up here... if (roundingMode == RoundingMode.UNNECESSARY) { // ICU4C doesn't support this rounding mode, so we have to fake it. try { setRoundingMode(RoundingMode.UP); String upResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); setRoundingMode(RoundingMode.DOWN); String downResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); if (!upResult.equals(downResult)) { throw new ArithmeticException("rounding mode UNNECESSARY but rounding required"); } } finally { setRoundingMode(RoundingMode.UNNECESSARY); } } buffer.append(ndf.formatDouble(value, position)); return buffer; }
@Override public StringBuffer format(double value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); // All float/double/Float/Double formatting ends up here... if (roundingMode == RoundingMode.UNNECESSARY) { // ICU4C doesn't support this rounding mode, so we have to fake it. try { setRoundingMode(RoundingMode.UP); String upResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); setRoundingMode(RoundingMode.DOWN); String downResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); if (!upResult.equals(downResult)) { throw new ArithmeticException("rounding mode UNNECESSARY but rounding required"); } } finally { setRoundingMode(RoundingMode.UNNECESSARY); } } buffer.append(ndf.formatDouble(value, position)); return buffer; }
@Override public StringBuffer format(double value, StringBuffer buffer, FieldPosition position) { checkBufferAndFieldPosition(buffer, position); // All float/double/Float/Double formatting ends up here... if (roundingMode == RoundingMode.UNNECESSARY) { // ICU4C doesn't support this rounding mode, so we have to fake it. try { setRoundingMode(RoundingMode.UP); String upResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); setRoundingMode(RoundingMode.DOWN); String downResult = format(value, new StringBuffer(), new FieldPosition(0)).toString(); if (!upResult.equals(downResult)) { throw new ArithmeticException("rounding mode UNNECESSARY but rounding required"); } } finally { setRoundingMode(RoundingMode.UNNECESSARY); } } buffer.append(ndf.formatDouble(value, position)); return buffer; }