@GwtIncompatible public class BigDecimalMath extends java.lang.Object
BigDecimal
that is not covered by its built-in methods.Modifier and Type | Method and Description |
---|---|
static double |
roundToDouble(java.math.BigDecimal x,
java.math.RoundingMode mode)
Returns
x , rounded to a double with the specified rounding mode. |
public static double roundToDouble(java.math.BigDecimal x, java.math.RoundingMode mode)
x
, rounded to a double
with the specified rounding mode. If x
is precisely representable as a double
, its double
value will be returned;
otherwise, the rounding will choose between the two nearest representable values with mode
.
For the case of RoundingMode.HALF_DOWN
, HALF_UP
, and HALF_EVEN
,
infinite double
values are considered infinitely far away. For example, 2^2000 is not
representable as a double, but roundToDouble(BigDecimal.valueOf(2).pow(2000), HALF_UP)
will return Double.MAX_VALUE
, not Double.POSITIVE_INFINITY
.
For the case of RoundingMode.HALF_EVEN
, this implementation uses the IEEE 754
default rounding mode: if the two nearest representable values are equally near, the one with
the least significant bit zero is chosen. (In such cases, both of the nearest representable
values are even integers; this method returns the one that is a multiple of a greater power of
two.)
java.lang.ArithmeticException
- if mode
is RoundingMode.UNNECESSARY
and x
is not precisely representable as a double
Copyright © 2010–2021 JBoss by Red Hat. All rights reserved.