Class ToBase

  • All Implemented Interfaces:
    PostfixMathCommandI, java.io.Serializable

    public class ToBase
    extends NaryFunction
    Convert a number to a string in a given base. The base to used is specified in the constructor

    A prefix can be specified in the constructor. If set this will be appended to the number (after minus sign for negative values). For example with the following setup

     jep.addFunction("toBase",new ToBase());
     jep.addFunction("toDec",new ToBase(10));
     jep.addFunction("toHex",new ToBase(16,"0x"));
    • toBase(val,12) converts to base 12 numbers.
    • toBase(val,16,3) converts to base 12 with 3 hex digits after decimal place.
    • toDec(val) converts to base 10.
    • toDec(val,3) converts to base 10 with 3 digits after decimal place.
    • toHex(val) converts to base 16.
    • toHex(val,3) converts to base 16 with 3 hex digits after decimal place.

    A prefix can be specified in the constructor. If set this will be appended to the number (after minus sign for negative values).

    Author:
    Rich Morris Created on 02-May-2005
    See Also:
    Long.toString(long, int), Serialized Form
    • Constructor Detail

      • ToBase

        public ToBase()
        Constructor where base is specified as a function argument.
      • ToBase

        public ToBase​(int base)
        Constructor with specified base.
        Parameters:
        base - the base to use
        Throws:
        java.lang.IllegalArgumentException - if base is < 2 or > 36
      • ToBase

        public ToBase​(int base,
                      java.lang.String prefix)
        Constructor with specified base and a given prefix. For example 0x to proceed hexadecimal numbers.
        Parameters:
        base - the base to use
        prefix - the string to prefix numbers with.
        Throws:
        java.lang.IllegalArgumentException - if base is < 2 or > 36
    • Method Detail

      • checkNumberOfParameters

        public boolean checkNumberOfParameters​(int n)
        Description copied from class: PostfixMathCommand
        Checks the number of parameters of the function. Functions which set numberOfParameter=-1 should overload this method
        Specified by:
        checkNumberOfParameters in interface PostfixMathCommandI
        Overrides:
        checkNumberOfParameters in class PostfixMathCommand
        Parameters:
        n - number of parameters function will be called with.
        Returns:
        false if an illegal number of parameters is supplied, true otherwise.
      • eval

        public java.lang.Object eval​(java.lang.Object[] args)
                              throws EvaluationException
        Description copied from class: NaryFunction
        Evaluate the function
        Specified by:
        eval in class NaryFunction
        Parameters:
        args - arguments to the function
        Returns:
        value returned by the function
        Throws:
        EvaluationException - if the calculation cannot be performed
      • toBase

        public java.lang.String toBase​(long num,
                                       int base)
        Converts a number to a give base.
        Parameters:
        num - number to convert
        base - base to use
        Returns:
        String representation
        Throws:
        java.lang.IllegalArgumentException - if base is < 2 or > 36
      • toBase

        public java.lang.String toBase​(double val,
                                       int base,
                                       int digits)
        Converts a number to a give base.
        Parameters:
        val - number to convert
        base - base to use
        digits - number of digits after decimal place
        Returns:
        String representation
        Throws:
        java.lang.IllegalArgumentException - if base is < 2 or > 36