public ExprValue div(ExprValue other){
		switch (dataType){
		case Long:
			if (other.dataType == DataType.Long){
				if (other.getLong() == 0)
					throw new FormulaException("divided by zero");
				setLong(getLong() / other.getLong());
				return this;
			}else{
				if (other.dataType == DataType.Double){
					if (other.getDouble() == 0)
						throw new FormulaException("divided by zero");
					setDouble(getLong() / other.getDouble());
					return this;
				}
			}
			break;
		case Double:
			if (other.dataType == DataType.Long || other.dataType == DataType.Double){
				if (other.getDouble() == 0)
					throw new FormulaException("divided by zero");
				setDouble(getDouble() / other.getDouble());
				return this;
			}
			break;
		}
		throw new FormulaException("Can not div value between "
				+ dataType.toString() + " and " + other.dataType.toString());		
	}