Class Decimal32

java.lang.Object
org.firebirdsql.decimal.Decimal<Decimal32>
org.firebirdsql.decimal.Decimal32

public final class Decimal32 extends Decimal<Decimal32>
An IEEE-754 Decimal32.
Author:
Mark Rotteveel
  • Field Details

    • 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 Details

    • parseBytes

      public static Decimal32 parseBytes(byte[] decBytes)
      Parses the provided byte array to a Decimal32.

      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:
      IllegalArgumentException - When decBytes is not 4 bytes long
    • valueOf

      public static Decimal32 valueOf(BigDecimal value)
      Creates a Decimal32 from value, 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(BigDecimal value, OverflowHandling overflowHandling)
      Creates a Decimal32 from value, 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 convert
      overflowHandling - Overflow handling to apply
      Returns:
      Decimal32 equivalent
      Throws:
      DecimalOverflowException - If OverflowHandling#THROW_EXCEPTION and the value is out of range.
    • valueOf

      public static Decimal32 valueOf(BigInteger value)
      Creates a Decimal32 from value, 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(BigInteger value, OverflowHandling overflowHandling)
      Creates a Decimal32 from value, 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 convert
      overflowHandling - Handling of overflows
      Returns:
      Decimal32 equivalent
      Throws:
      DecimalOverflowException - If OverflowHandling#THROW_EXCEPTION and the value is out of range.
      See Also:
    • valueOfExact

      public static Decimal32 valueOfExact(BigInteger value)
      Creates a Decimal32 from value, 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

      public static Decimal32 valueOf(double value)
      Creates a Decimal32 from value, 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 a Decimal32 from value, 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 value
      overflowHandling - Overflow handling to apply
      Returns:
      Decimal equivalent
      Throws:
      DecimalOverflowException - If OverflowHandling#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()), see valueOf(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), see valueOf(BigDecimal, OverflowHandling).

      Parameters:
      decimal - Decimal to convert
      overflowHandling - Overflow handling to apply
      Returns:
      Decimal converted to Decimal32, or decimal itself if it already is Decimal32
      Throws:
      DecimalOverflowException - If OverflowHandling#THROW_EXCEPTION and the value is out of range.
    • valueOf

      public static Decimal32 valueOf(String value)
      Creates a Decimal32 from value, 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:
      NumberFormatException - If the provided string is not valid numeric string.
    • valueOf

      public static Decimal32 valueOf(String value, OverflowHandling overflowHandling)
      Creates a Decimal32 from value, 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 convert
      overflowHandling - Overflow handling to apply
      Returns:
      Decimal equivalent
      Throws:
      NumberFormatException - If the provided string is not valid numeric string.
      DecimalOverflowException - If OverflowHandling#THROW_EXCEPTION and the value is out of range.