Class BigHelper

java.lang.Object
com.helger.base.numeric.BigHelper

@Immutable public final class BigHelper extends Object
BigDecimal and BigInteger helper
Since:
v12.0.0
Author:
Philip Helger
  • Method Details

    • getDividedBigDecimal

      @Nonnull public static BigDecimal getDividedBigDecimal(long nDividend, long nDivisor)
      Get the division result using BigDecimal.
      Parameters:
      nDividend - the dividend
      nDivisor - the divisor
      Returns:
      the result of the division
      Throws:
      ArithmeticException - if the divisor is 0.
    • getDividedBigDecimal

      @Nonnull public static BigDecimal getDividedBigDecimal(long nDividend, long nDivisor, @Nonnegative int nScale, @Nonnull RoundingMode eRoundingMode)
      Get the division result using BigDecimal.
      Parameters:
      nDividend - the dividend
      nDivisor - the divisor
      nScale - Number of fraction digits. Must be ≥ 0.
      eRoundingMode - Round mode to be used. May not be null.
      Returns:
      the result of the division
      Throws:
      ArithmeticException - if the divisor is 0.
      Since:
      v11.0.2
    • getMaxBigDecimal

      @Nonnull public static BigDecimal getMaxBigDecimal(@Nonnull BigDecimal aValue, @Nonnull BigDecimal... aValues)
    • getMaxBigInteger

      @Nonnull public static BigInteger getMaxBigInteger(@Nonnull BigInteger aValue, @Nonnull BigInteger... aValues)
    • getMinBigDecimal

      @Nonnull public static BigDecimal getMinBigDecimal(@Nonnull BigDecimal aValue, @Nonnull BigDecimal... aValues)
    • getMinBigInteger

      @Nonnull public static BigInteger getMinBigInteger(@Nonnull BigInteger aValue, @Nonnull BigInteger... aValues)
    • abs

      @Nonnull public static BigDecimal abs(@Nonnull BigDecimal aValue)
      This is a sanity method wrapping BigDecimal.abs (double), so that you don't have to think whether you need to invoke the abs method from this class or the one from BigDecimal directly.
      Parameters:
      aValue - Input value
      Returns:
      the absolute value of the argument.
    • abs

      @Nonnull public static BigInteger abs(@Nonnull BigInteger aValue)
      This is a sanity method wrapping BigInteger.abs (double), so that you don't have to think whether you need to invoke the abs method from this class or the one from BigInteger directly.
      Parameters:
      aValue - Input value
      Returns:
      the absolute value of the argument.
    • equalValues

      public static boolean equalValues(@Nonnull BigDecimal aObj1, @Nonnull BigDecimal aObj2)
      Special equals implementation for BigDecimal because BigDecimal.equals returns false if they have a different scale so that "5.5" is not equal "5.50".
      Parameters:
      aObj1 - first value
      aObj2 - second value
      Returns:
      true if they contain the same value
    • isEQ0

      public static boolean isEQ0(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is = 0.
    • isNE0

      public static boolean isNE0(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is != 0.
    • isLT0

      public static boolean isLT0(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is < 0.
    • isLE0

      public static boolean isLE0(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≤ 0.
    • isGT0

      public static boolean isGT0(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is > 0.
    • isGE0

      public static boolean isGE0(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≥ 0.
    • isEQ1

      public static boolean isEQ1(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is = 1.
    • isNE1

      public static boolean isNE1(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is != 1.
    • isLT1

      public static boolean isLT1(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is < 1.
    • isLE1

      public static boolean isLE1(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≤ 1.
    • isGT1

      public static boolean isGT1(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is > 1.
    • isGE1

      public static boolean isGE1(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≥ 1.
    • isEQ10

      public static boolean isEQ10(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is = 10.
    • isNE10

      public static boolean isNE10(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is != 10.
    • isLT10

      public static boolean isLT10(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is < 10.
    • isLE10

      public static boolean isLE10(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≤ 10.
    • isGT10

      public static boolean isGT10(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is > 10.
    • isGE10

      public static boolean isGE10(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≥ 10.
    • isEQ100

      public static boolean isEQ100(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is = 100.
    • isNE100

      public static boolean isNE100(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is != 100.
    • isLT100

      public static boolean isLT100(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is < 100.
    • isLE100

      public static boolean isLE100(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≤ 100.
    • isGT100

      public static boolean isGT100(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is > 100.
    • isGE100

      public static boolean isGE100(@Nonnull BigDecimal aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≥ 100.
    • isEQ0

      public static boolean isEQ0(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is = 0.
    • isNE0

      public static boolean isNE0(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is != 0.
    • isLT0

      public static boolean isLT0(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is < 0.
    • isLE0

      public static boolean isLE0(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≤ 0.
    • isGT0

      public static boolean isGT0(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is > 0.
    • isGE0

      public static boolean isGE0(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≥ 0.
    • isEQ1

      public static boolean isEQ1(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is = 1.
    • isNE1

      public static boolean isNE1(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is != 1.
    • isLT1

      public static boolean isLT1(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is < 1.
    • isLE1

      public static boolean isLE1(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≤ 1.
    • isGT1

      public static boolean isGT1(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is > 1.
    • isGE1

      public static boolean isGE1(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≥ 1.
    • isEQ10

      public static boolean isEQ10(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is = 10.
    • isNE10

      public static boolean isNE10(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is != 10.
    • isLT10

      public static boolean isLT10(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is < 10.
    • isLE10

      public static boolean isLE10(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≤ 10.
    • isGT10

      public static boolean isGT10(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is > 10.
    • isGE10

      public static boolean isGE10(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≥ 10.
    • isEQ100

      public static boolean isEQ100(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is = 100.
    • isNE100

      public static boolean isNE100(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is != 100.
    • isLT100

      public static boolean isLT100(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is < 100.
    • isLE100

      public static boolean isLE100(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≤ 100.
    • isGT100

      public static boolean isGT100(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is > 100.
    • isGE100

      public static boolean isGE100(@Nonnull BigInteger aValue)
      Parameters:
      aValue - Value to compare. May not be null.
      Returns:
      true if the value is ≥ 100.
    • getWithoutTrailingZeroes

      @Nullable @CheckReturnValue public static BigDecimal getWithoutTrailingZeroes(@Nullable String sValue)
      Get the passed String as a BigDecimal without any trailing zeroes.
      Parameters:
      sValue - The String to be used as a BigDecimal to be modified. May be null.
      Returns:
      null if the input value is null.
    • getWithoutTrailingZeroes

      @Nullable @CheckReturnValue public static BigDecimal getWithoutTrailingZeroes(@Nullable BigDecimal aValue)
      Get the passed BigDecimal without any trailing zeroes. Examples:
      • new BigDecimal ("0.00000000") --> 0
      • new BigDecimal ("10") --> 10
      • new BigDecimal ("10.00000000") --> 10
      • new BigDecimal ("10.1") --> 10.1
      • new BigDecimal ("10.10000000") --> 10.1
      • new BigDecimal ("10.345") --> 10.345
      • new BigDecimal ("10.3450000000") --> 10.345
      Parameters:
      aValue - The BigDecimal to be modified. May be null.
      Returns:
      null if the input value is null.
    • getFractionDigits

      @Nonnegative public static int getFractionDigits(@Nonnull BigDecimal aBD)
      Get the number of effective fraction digits by the specified BigDecimal. Examples:
      • new BigDecimal ("10") --> 0
      • new BigDecimal ("10.00000000") --> 0
      • new BigDecimal ("10.1") --> 1
      • new BigDecimal ("10.10000000") --> 1
      • new BigDecimal ("10.345") --> 3
      • new BigDecimal ("10.3450000000") --> 3
      Parameters:
      aBD - The BigDecimal to check. May not be null.
      Returns:
      The minimum number of fraction digits. Always ≥ 0.
    • addPercent

      @Nonnull public static BigDecimal addPercent(@Nonnull BigDecimal aBase, @Nonnull BigDecimal aPercentage)
      Add x% to base
      Parameters:
      aBase - Base value. May not be null.
      aPercentage - Percentage value (0-100). May not be null.
      Returns:
      base + x% (=aBase * (100 + perc) / 100). Never null.
    • addPercent

      @Nonnull public static BigDecimal addPercent(@Nonnull BigDecimal aBase, @Nonnull BigDecimal aPercentage, @Nonnegative int nScale, @Nonnull RoundingMode eRoundingMode)
      Add x% to base
      Parameters:
      aBase - Base value. May not be null.
      aPercentage - Percentage value (0-100). May not be null.
      nScale - Maximum scale to achieve.
      eRoundingMode - Rounding mode to used. May not be null.
      Returns:
      base + x% (=aBase * (100 + perc) / 100). Never null.
    • subtractPercent

      @Nonnull public static BigDecimal subtractPercent(@Nonnull BigDecimal aBase, @Nonnull BigDecimal aPercentage)
      Subtract x% from base
      Parameters:
      aBase - Base value. May not be null.
      aPercentage - Percentage value (0-100). May not be null.
      Returns:
      base - x% (=aBase * (100 - perc) / 100). Never null.
    • subtractPercent

      @Nonnull public static BigDecimal subtractPercent(@Nonnull BigDecimal aBase, @Nonnull BigDecimal aPercentage, @Nonnegative int nScale, @Nonnull RoundingMode eRoundingMode)
      Subtract x% from base
      Parameters:
      aBase - Base value. May not be null.
      aPercentage - Percentage value (0-100). May not be null.
      nScale - Maximum scale to achieve.
      eRoundingMode - Rounding mode to used. May not be null.
      Returns:
      base - x% (=aBase * (100 - perc) / 100). Never null.
    • getPercentValue

      @Nonnull public static BigDecimal getPercentValue(@Nonnull BigDecimal aBase, @Nonnull BigDecimal aPercentage)
      Get x% from base
      Parameters:
      aBase - Base value. May not be null.
      aPercentage - Percentage value (0-100). May not be null.
      Returns:
      x% from base (=aBase * perc / 100). Never null.
    • getPercentValue

      @Nonnull public static BigDecimal getPercentValue(@Nonnull BigDecimal aBase, @Nonnull BigDecimal aPercentage, @Nonnegative int nScale, @Nonnull RoundingMode eRoundingMode)
      Get x% from base with rounding etc.
      Parameters:
      aBase - Base value. May not be null.
      aPercentage - Percentage value (0-100). May not be null.
      nScale - Maximum scale to achieve.
      eRoundingMode - Rounding mode to used. May not be null.
      Returns:
      x% from base (=aBase * perc / 100). Never null.
    • toBigDecimal

      @Nonnull public static BigDecimal toBigDecimal(int n)
    • toBigDecimal

      @Nonnull public static BigDecimal toBigDecimal(long n)
    • toBigDecimal

      @Nonnull public static BigDecimal toBigDecimal(float f)
    • toBigDecimal

      @Nonnull public static BigDecimal toBigDecimal(double d)
    • toBigDecimal

      @Nonnull public static BigDecimal toBigDecimal(@Nonnull Number aNumber)
    • toBigDecimal

      @Nonnull public static BigDecimal toBigDecimal(@Nonnull String sNumber)
    • toBigInteger

      @Nonnull public static BigInteger toBigInteger(int n)
    • toBigInteger

      @Nonnull public static BigInteger toBigInteger(long n)
    • toBigInteger

      @Nonnull public static BigInteger toBigInteger(@Nonnull Number aNumber)
    • toBigInteger

      @Nonnull public static BigInteger toBigInteger(@Nonnull String sNumber)