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.