Class Decimal<T extends Decimal<T>>

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 Details

    • toBigDecimal

      public final BigDecimal toBigDecimal()
      Converts this decimal to a BigDecimal.
      Returns:
      Value as BigDecimal
      Throws:
      DecimalInconvertibleException - If this value is a NaN, sNaN or Infinity, which can't be represented as a BigDecimal.
    • 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 or Double.NEGATIVE_INFINITY. For all NaN-specials, returns Double.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(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:
      IllegalArgumentException - If conversion to decimalType 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 type
      overflowHandling - Handling of overflows
      Returns:
      This value after conversion, or this if decimalType is the same as this type
      Throws:
      IllegalArgumentException - If conversion to decimalType is not supported
      DecimalOverflowException - If OverflowHandling#THROW_EXCEPTION and the value is out of range for the target decimal type.
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • equals

      public final boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object