java.lang.Object
org.firebirdsql.decimal.Decimal<T>
- Direct Known Subclasses:
Decimal128
,Decimal32
,Decimal64
public abstract sealed class Decimal<T extends Decimal<T>>
extends Object
permits Decimal32, Decimal64, Decimal128
Abstract base class for IEEE-754 decimals.
- Author:
- Mark Rotteveel
-
Method Summary
Modifier and TypeMethodDescriptionfinal double
Converts this decimal to a double value.final boolean
final int
hashCode()
final BigDecimal
Converts 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 String
toString()
-
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_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
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:
IllegalArgumentException
- If conversion todecimalType
is 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
decimalType
is the same as this type - Throws:
IllegalArgumentException
- If conversion todecimalType
is not supportedDecimalOverflowException
- IfOverflowHandling#THROW_EXCEPTION
and the value is out of range for the target decimal type.
-
toString
-
equals
-
hashCode
public final int hashCode()
-