Class ToBase
- java.lang.Object
-
- com.singularsys.jep.functions.PostfixMathCommand
-
- com.singularsys.jep.functions.NaryFunction
-
- com.singularsys.jep.misc.functions.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 constructorA 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
-
-
Field Summary
-
Fields inherited from class com.singularsys.jep.functions.PostfixMathCommand
curNumberOfParameters, name, NaN, numberOfParameters
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
checkNumberOfParameters(int n)
Checks the number of parameters of the function.java.lang.Object
eval(java.lang.Object[] args)
Evaluate the functionjava.lang.String
toBase(double val, int base, int digits)
Converts a number to a give base.java.lang.String
toBase(long num, int base)
Converts a number to a give base.-
Methods inherited from class com.singularsys.jep.functions.NaryFunction
run
-
Methods inherited from class com.singularsys.jep.functions.PostfixMathCommand
asArray, asBool, asDouble, asInt, asLong, asStrictInt, asString, getName, getNumberOfParameters, setCurNumberOfParameters, setName, toString, toString
-
-
-
-
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 useprefix
- 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 interfacePostfixMathCommandI
- Overrides:
checkNumberOfParameters
in classPostfixMathCommand
- 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 classNaryFunction
- 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 convertbase
- 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 convertbase
- base to usedigits
- number of digits after decimal place- Returns:
- String representation
- Throws:
java.lang.IllegalArgumentException
- if base is < 2 or > 36
-
-