Package org.firebirdsql.extern.decimal
Class Decimal<T extends Decimal<T>>
- java.lang.Object
-
- org.firebirdsql.extern.decimal.Decimal<T>
-
- Direct Known Subclasses:
Decimal128
,Decimal32
,Decimal64
public abstract class Decimal<T extends Decimal<T>> extends java.lang.Object
Abstract base class for IEEE-754 decimals.- Author:
- Mark Rotteveel
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
doubleValue()
Converts this decimal to a double value.boolean
equals(java.lang.Object o)
int
hashCode()
java.math.BigDecimal
toBigDecimal()
Converts this decimal to aBigDecimal
.byte[]
toBytes()
Converts this decimal to its IEEE-754 byte encoding in network byte-order (aka big-endian).<D extends Decimal<D>>
DtoDecimal(java.lang.Class<D> decimalType)
Converts this decimal to the requested decimal type, rounding when necessary.<D extends Decimal<D>>
DtoDecimal(java.lang.Class<D> decimalType, OverflowHandling overflowHandling)
Converts this decimal to the requested decimal type, rounding when necessary.java.lang.String
toString()
-
-
-
Method Detail
-
toBigDecimal
public final java.math.BigDecimal toBigDecimal()
Converts this decimal to aBigDecimal
.- Returns:
- Value as BigDecimal
- Throws:
DecimalInconvertibleException
- If this value is a NaN, sNaN or Infinity, which can't be represented as aBigDecimal
.
-
doubleValue
public final double doubleValue()
Converts this decimal to a double value.For normal, finite, decimal values, see
BigDecimal.doubleValue()
.For type INFINITY, returns
Double.POSITIVE_INFINITY
orDouble.NEGATIVE_INFINITY
. For all NaN-specials, returnsDouble.NaN
(irrespective of signum).- Returns:
- this decimal converted to a
double
-
toBytes
public final byte[] toBytes()
Converts this decimal to its IEEE-754 byte encoding in network byte-order (aka big-endian).This method returns network byte-order (aka big-endian). When you need little-endian order, you will need to reverse the bytes in the array.
- Returns:
- byte array
-
toDecimal
public final <D extends Decimal<D>> D toDecimal(java.lang.Class<D> decimalType)
Converts this decimal to the requested decimal type, rounding when necessary.- Type Parameters:
D
- Type parameter of decimal- Parameters:
decimalType
- Target decimal type- Returns:
- This value after conversion, or this if
decimalType
is the same as this type - Throws:
java.lang.IllegalArgumentException
- If conversion todecimalType
is not supported
-
toDecimal
public final <D extends Decimal<D>> D toDecimal(java.lang.Class<D> decimalType, OverflowHandling overflowHandling)
Converts this decimal to the requested decimal type, rounding when necessary.- Type Parameters:
D
- Type parameter of decimal- Parameters:
decimalType
- Target decimal typeoverflowHandling
- Handling of overflows- Returns:
- This value after conversion, or this if
decimalType
is the same as this type - Throws:
java.lang.IllegalArgumentException
- If conversion todecimalType
is not supportedDecimalOverflowException
- IfOverflowHandling#THROW_EXCEPTION
and the value is out of range for the target decimal type.
-
toString
public final java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public final boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public final int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-