public enum DoubleFormat extends Enum<DoubleFormat>
DecimalFormatSymbols instance to the
formatSymbols method or by
directly calling the various other builder configuration methods, such as
digits.
Comparison with DecimalFormat
This type provides some of the same functionality as Java's own
DecimalFormat. However, unlike DecimalFormat, the format
functions produced by this type are lightweight and thread-safe, making them
much easier to work with in multi-threaded environments. They also provide performance
comparable to, and in many cases faster than, DecimalFormat.
Examples
// construct a formatter equivalent to Double.toString()
DoubleFunction<String> fmt = DoubleFormat.MIXED.builder().build();
// construct a formatter equivalent to Double.toString() but using
// format symbols for a specific locale
DoubleFunction<String> fmt = DoubleFormat.MIXED.builder()
.formatSymbols(DecimalFormatSymbols.getInstance(locale))
.build();
// construct a formatter equivalent to the DecimalFormat pattern "0.0##"
DoubleFunction<String> fmt = DoubleFormat.PLAIN.builder()
.minDecimalExponent(-3)
.build();
// construct a formatter equivalent to the DecimalFormat pattern "#,##0.0##",
// where whole number groups of thousands are separated
DoubleFunction<String> fmt = DoubleFormat.PLAIN.builder()
.minDecimalExponent(-3)
.groupThousands(true)
.build();
// construct a formatter equivalent to the DecimalFormat pattern "0.0##E0"
DoubleFunction<String> fmt = DoubleFormat.SCIENTIFIC.builder()
.maxPrecision(4)
.alwaysIncludeExponent(true)
.build()
// construct a formatter equivalent to the DecimalFormat pattern "##0.0##E0",
// i.e. "engineering format"
DoubleFunction<String> fmt = DoubleFormat.ENGINEERING.builder()
.maxPrecision(6)
.alwaysIncludeExponent(true)
.build()
Implementation Notes
Half-even rounding is used in cases where the
decimal value must be rounded in order to meet the configuration requirements of the formatter
instance.
| Modifier and Type | Class and Description |
|---|---|
static class |
DoubleFormat.Builder
Builds configured format functions for standard double format types.
|
| Enum Constant and Description |
|---|
ENGINEERING
Number format similar to
scientific format but adjusted
so that the exponent value is always a multiple of 3, allowing easier alignment
with SI prefixes. |
MIXED
Number format that uses
plain format for small numbers and
scientific format for large numbers. |
PLAIN
Number format without exponents.
|
SCIENTIFIC
Number format that uses exponents and contains a single digit
to the left of the decimal point.
|
| Modifier and Type | Method and Description |
|---|---|
DoubleFormat.Builder |
builder()
Creates a
DoubleFormat.Builder for building formatter functions for this format type. |
static DoubleFormat |
valueOf(String name)
Returns the enum constant of this type with the specified name.
|
static DoubleFormat[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final DoubleFormat PLAIN
0.0 12.401 100000.0 1450000000.0 0.0000000000123
public static final DoubleFormat SCIENTIFIC
0.0 1.2401E1 1.0E5 1.45E9 1.23E-11
public static final DoubleFormat ENGINEERING
scientific format but adjusted
so that the exponent value is always a multiple of 3, allowing easier alignment
with SI prefixes.
Ex:
0.0 12.401 100.0E3 1.45E9 12.3E-12
public static final DoubleFormat MIXED
plain format for small numbers and
scientific format for large numbers. The number thresholds
can be configured through the
plainFormatMinDecimalExponent
and
plainFormatMaxDecimalExponent
properties.
Ex:
0.0 12.401 100000.0 1.45E9 1.23E-11
public static DoubleFormat[] values()
for (DoubleFormat c : DoubleFormat.values()) System.out.println(c);
public static DoubleFormat valueOf(String name)
name - the name of the enum constant to be returned.IllegalArgumentException - if this enum type has no constant with the specified nameNullPointerException - if the argument is nullpublic DoubleFormat.Builder builder()
DoubleFormat.Builder for building formatter functions for this format type.Copyright © 2014–2022 The Apache Software Foundation. All rights reserved.