long l = 1;
double d = 1;
boolean isFloating = false;
for(int i =0; i < args.length; i++){
final DataValue v = args[i].eval();
// logger.debug("DataValue {}", v);
if(Types.isNumericType(v.getDataType())){
NumericValue n = v.getAsNumeric();
NumericType nt = n.getNumericType();
// logger.debug("Numeric Type: {}", nt);
if(isFloating || nt == NumericType.FLOAT || nt == NumericType.DOUBLE){
if(!isFloating){
d = l;