Class Decimal32
- java.lang.Object
-
- org.firebirdsql.extern.decimal.Decimal<Decimal32>
-
- org.firebirdsql.extern.decimal.Decimal32
-
public final class Decimal32 extends Decimal<Decimal32>
An IEEE-754 Decimal32.- Author:
- Mark Rotteveel
-
-
Field Summary
Fields Modifier and Type Field Description static Decimal32
NEGATIVE_INFINITY
static Decimal32
NEGATIVE_NAN
static Decimal32
NEGATIVE_SIGNALING_NAN
static Decimal32
POSITIVE_INFINITY
static Decimal32
POSITIVE_NAN
static Decimal32
POSITIVE_SIGNALING_NAN
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Decimal32
parseBytes(byte[] decBytes)
Parses the provided byte array to aDecimal32
.static Decimal32
valueOf(double value)
Creates aDecimal32
fromvalue
, applying rounding where necessary.static Decimal32
valueOf(double value, OverflowHandling overflowHandling)
Creates aDecimal32
fromvalue
, applying rounding where necessary.static Decimal32
valueOf(java.lang.String value)
Creates aDecimal32
fromvalue
, applying rounding where necessary.static Decimal32
valueOf(java.lang.String value, OverflowHandling overflowHandling)
Creates aDecimal32
fromvalue
, applying rounding where necessary.static Decimal32
valueOf(java.math.BigDecimal value)
Creates aDecimal32
fromvalue
, applying rounding where necessary.static Decimal32
valueOf(java.math.BigDecimal value, OverflowHandling overflowHandling)
Creates aDecimal32
fromvalue
, applying rounding where necessary.static Decimal32
valueOf(java.math.BigInteger value)
Creates aDecimal32
fromvalue
, applying rounding where necessary.static Decimal32
valueOf(java.math.BigInteger value, OverflowHandling overflowHandling)
Creates aDecimal32
fromvalue
, applying rounding where necessary.static Decimal32
valueOf(Decimal<?> decimal)
Converts a decimal to Decimal32.static Decimal32
valueOf(Decimal<?> decimal, OverflowHandling overflowHandling)
Converts a decimal to Decimal32.static Decimal32
valueOfExact(java.math.BigInteger value)
Creates aDecimal32
fromvalue
, rejecting values that would lose precision due to rounding.-
Methods inherited from class org.firebirdsql.extern.decimal.Decimal
doubleValue, equals, hashCode, toBigDecimal, toBytes, toDecimal, toDecimal, toString
-
-
-
-
Field Detail
-
POSITIVE_INFINITY
public static final Decimal32 POSITIVE_INFINITY
-
NEGATIVE_INFINITY
public static final Decimal32 NEGATIVE_INFINITY
-
POSITIVE_NAN
public static final Decimal32 POSITIVE_NAN
-
NEGATIVE_NAN
public static final Decimal32 NEGATIVE_NAN
-
POSITIVE_SIGNALING_NAN
public static final Decimal32 POSITIVE_SIGNALING_NAN
-
NEGATIVE_SIGNALING_NAN
public static final Decimal32 NEGATIVE_SIGNALING_NAN
-
-
Method Detail
-
parseBytes
public static Decimal32 parseBytes(byte[] decBytes)
Parses the provided byte array to aDecimal32
.This method parses network byte-order (aka big-endian). When using little-endian order, you will need to reverse the bytes in the array first.
- Parameters:
decBytes
- Bytes of the Decimal32 value in network byte-order (aka big-endian)- Returns:
- Instance of
Decimal32
- Throws:
java.lang.IllegalArgumentException
- WhendecBytes
is not 4 bytes long
-
valueOf
public static Decimal32 valueOf(java.math.BigDecimal value)
Creates aDecimal32
fromvalue
, applying rounding where necessary.Values exceeding the range of this type will be returned as +/-Infinity.
- Parameters:
value
- Big decimal value to convert- Returns:
- Decimal32 equivalent
-
valueOf
public static Decimal32 valueOf(java.math.BigDecimal value, OverflowHandling overflowHandling)
Creates aDecimal32
fromvalue
, applying rounding where necessary.Values exceeding the range of this type will be handled according to the specified overflow handling.
- Parameters:
value
- Big decimal value to convertoverflowHandling
- Overflow handling to apply- Returns:
- Decimal32 equivalent
- Throws:
DecimalOverflowException
- IfOverflowHandling#THROW_EXCEPTION
and the value is out of range.
-
valueOf
public static Decimal32 valueOf(java.math.BigInteger value)
Creates aDecimal32
fromvalue
, applying rounding where necessary.Values exceeding the range of this type will be returned as +/-Infinity.
- Parameters:
value
- Big integer value to convert- Returns:
- Decimal32 equivalent
-
valueOf
public static Decimal32 valueOf(java.math.BigInteger value, OverflowHandling overflowHandling)
Creates aDecimal32
fromvalue
, applying rounding where necessary.Values exceeding the range of this type will be handled according to the specified overflow handling.
Calling this method is equivalent to
valueOf(new BigDecimal(value), overflowHandling)
.- Parameters:
value
- Big integer value to convertoverflowHandling
- Handling of overflows- Returns:
- Decimal32 equivalent
- Throws:
DecimalOverflowException
- IfOverflowHandling#THROW_EXCEPTION
and the value is out of range.- See Also:
valueOfExact(BigInteger)
-
valueOfExact
public static Decimal32 valueOfExact(java.math.BigInteger value)
Creates aDecimal32
fromvalue
, rejecting values that would lose precision due to rounding.- Parameters:
value
- Big integer value to convert- Returns:
- Decimal32 equivalent
- Throws:
DecimalOverflowException
- If the value is out of range.- See Also:
valueOf(BigInteger, OverflowHandling)
-
valueOf
public static Decimal32 valueOf(double value)
Creates aDecimal32
fromvalue
, applying rounding where necessary.Double.NaN
is mapped to positive NaN, the infinities to their equivalent +/- infinity.For normal, finite, values, this is equivalent to
valueOf(BigDecimal.valueOf(value))
.- Parameters:
value
- Double value- Returns:
- Decimal equivalent
-
valueOf
public static Decimal32 valueOf(double value, OverflowHandling overflowHandling)
Creates aDecimal32
fromvalue
, applying rounding where necessary.Double.NaN
is mapped to positive NaN, the infinities to their equivalent +/- infinity.For normal, finite, values, this is equivalent to
valueOf(BigDecimal.valueOf(value), overflowHandling)
.- Parameters:
value
- Double valueoverflowHandling
- Overflow handling to apply- Returns:
- Decimal equivalent
- Throws:
DecimalOverflowException
- IfOverflowHandling#THROW_EXCEPTION
and the value is out of range.
-
valueOf
public static Decimal32 valueOf(Decimal<?> decimal)
Converts a decimal to Decimal32.For normal, finite, decimals, this behaves like
valueOf(decimal.toBigDecimal())
, seevalueOf(BigDecimal)
.- Parameters:
decimal
- Decimal to convert- Returns:
- Decimal converted to Decimal32, or
decimal
itself if it already is Decimal32
-
valueOf
public static Decimal32 valueOf(Decimal<?> decimal, OverflowHandling overflowHandling)
Converts a decimal to Decimal32.For normal, finite, decimals, this behaves like
valueOf(decimal.toBigDecimal(), overflowHandling)
, seevalueOf(BigDecimal, OverflowHandling)
.- Parameters:
decimal
- Decimal to convertoverflowHandling
- Overflow handling to apply- Returns:
- Decimal converted to Decimal32, or
decimal
itself if it already is Decimal32 - Throws:
DecimalOverflowException
- IfOverflowHandling#THROW_EXCEPTION
and the value is out of range.
-
valueOf
public static Decimal32 valueOf(java.lang.String value)
Creates aDecimal32
fromvalue
, applying rounding where necessary.Except for the special values [+/-]Inf, [+/-]Infinity, [+/-]NaN and [+/-]sNaN (case insensitive), the rules of
BigDecimal(String)
apply, with special handling in place to discern between positive and negative zero.Values exceeding the range of this type will be returned as +/-Infinity.
- Parameters:
value
- String value to convert- Returns:
- Decimal equivalent
- Throws:
java.lang.NumberFormatException
- If the provided string is not valid numeric string.
-
valueOf
public static Decimal32 valueOf(java.lang.String value, OverflowHandling overflowHandling)
Creates aDecimal32
fromvalue
, applying rounding where necessary.Except for the special values [+/-]Inf, [+/-]Infinity, [+/-]NaN and [+/-]sNaN (case insensitive), the rules of
BigDecimal(String)
apply, with special handling in place to discern between positive and negative zero.Values exceeding the range of this type will be handled according to the specified overflow handling.
- Parameters:
value
- String value to convertoverflowHandling
- Overflow handling to apply- Returns:
- Decimal equivalent
- Throws:
java.lang.NumberFormatException
- If the provided string is not valid numeric string.DecimalOverflowException
- IfOverflowHandling#THROW_EXCEPTION
and the value is out of range.
-
-