Module org.firebirdsql.jaybird
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
Abstract base class for IEEE-754 decimals.
- Author:
- Mark Rotteveel
-
Method Summary
Modifier and TypeMethodDescriptionfinal doubleConverts this decimal to a double value.final booleanfinal inthashCode()final BigDecimalConverts this decimal to aBigDecimal.final byte[]toBytes()Converts this decimal to its IEEE-754 byte encoding in network byte-order (aka big-endian).final <D extends Decimal<D>>
DConverts this decimal to the requested decimal type, rounding when necessary.final <D extends Decimal<D>>
DtoDecimal(Class<D> decimalType, OverflowHandling overflowHandling) Converts this decimal to the requested decimal type, rounding when necessary.final StringtoString()
-
Method Details
-
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_INFINITYorDouble.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
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
decimalTypeis the same as this type - Throws:
IllegalArgumentException- If conversion todecimalTypeis not supported
-
toDecimal
public final <D extends Decimal<D>> D toDecimal(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
decimalTypeis the same as this type - Throws:
IllegalArgumentException- If conversion todecimalTypeis not supportedDecimalOverflowException- IfOverflowHandling#THROW_EXCEPTIONand the value is out of range for the target decimal type.
-
toString
-
equals
-
hashCode
public final int hashCode()
-