Class Decimal


  • public class Decimal
    extends java.lang.Object
    Converters from fixed point decimal bytes to java.math.BigDecimal, double, or long.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Decimal()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static int bigDecimalToPackedDecimalBytes​(byte[] buffer, int offset, java.math.BigDecimal b, int declaredPrecision, int declaredScale)
      Write a Java java.math.BigDecimal to packed decimal bytes.
      private static int[] computeMagnitude​(int[] input)
      Compute the int array of magnitude from input value segments.
      (package private) static java.math.BigDecimal getBigDecimal​(byte[] buffer, int offset, int precision, int scale)
      Build a java.math.BigDecimal from a fixed point decimal byte representation.
      (package private) static double getDouble​(byte[] buffer, int offset, int precision, int scale)
      Build a Java double from a fixed point decimal byte representation.
      (package private) static long getLong​(byte[] buffer, int offset, int precision, int scale)
      Build a Java long from a fixed point decimal byte representation.
      private static int packedNybblesToInt​(byte[] buffer, int offset, int startNybble, int numberOfNybbles)
      Convert a range of packed nybbles (up to 9 digits without overflow) to an int.
      private static long packedNybblesToLong​(byte[] buffer, int offset, int startNybble, int numberOfNybbles)
      Convert a range of packed nybbles (up to 18 digits without overflow) to a long.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • PACKED_DECIMAL

        public static final int PACKED_DECIMAL
        Packed Decimal representation
        See Also:
        Constant Field Values
      • tenRadixMagnitude

        private static final int[][] tenRadixMagnitude
    • Constructor Detail

      • Decimal

        private Decimal()
    • Method Detail

      • packedNybblesToInt

        private static final int packedNybblesToInt​(byte[] buffer,
                                                    int offset,
                                                    int startNybble,
                                                    int numberOfNybbles)
        Convert a range of packed nybbles (up to 9 digits without overflow) to an int. Note that for performance purpose, it does not do array-out-of-bound checking.
      • packedNybblesToLong

        private static final long packedNybblesToLong​(byte[] buffer,
                                                      int offset,
                                                      int startNybble,
                                                      int numberOfNybbles)
        Convert a range of packed nybbles (up to 18 digits without overflow) to a long. Note that for performance purpose, it does not do array-out-of-bound checking.
      • computeMagnitude

        private static final int[] computeMagnitude​(int[] input)
        Compute the int array of magnitude from input value segments.
      • getBigDecimal

        static java.math.BigDecimal getBigDecimal​(byte[] buffer,
                                                  int offset,
                                                  int precision,
                                                  int scale)
        Build a java.math.BigDecimal from a fixed point decimal byte representation.
        Throws:
        java.lang.IllegalArgumentException - if the specified representation is not recognized.
      • getDouble

        static double getDouble​(byte[] buffer,
                                int offset,
                                int precision,
                                int scale)
        Build a Java double from a fixed point decimal byte representation.
        Throws:
        java.lang.IllegalArgumentException - if the specified representation is not recognized.
      • getLong

        static long getLong​(byte[] buffer,
                            int offset,
                            int precision,
                            int scale)
        Build a Java long from a fixed point decimal byte representation.
        Throws:
        java.lang.IllegalArgumentException - if the specified representation is not recognized.
        java.lang.ArithmeticException - if value is too large for a long
      • bigDecimalToPackedDecimalBytes

        public static final int bigDecimalToPackedDecimalBytes​(byte[] buffer,
                                                               int offset,
                                                               java.math.BigDecimal b,
                                                               int declaredPrecision,
                                                               int declaredScale)
                                                        throws SqlException
        Write a Java java.math.BigDecimal to packed decimal bytes.
        Throws:
        SqlException