public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg1, ValueEval arg2) {try {Double number1 = evaluateValue(arg1, srcRowIndex, srcColumnIndex);if (number1 == null) {return ErrorEval.VALUE_INVALID;}Double number2 = evaluateValue(arg2, srcRowIndex, srcColumnIndex);if (number2 == null) {return ErrorEval.VALUE_INVALID;}return (number1.compareTo(number2) == 0) ? ONE : ZERO;} catch (EvaluationException e) {return e.getErrorEval();}}

public ValueEval evaluate ( int srcRowIndex , int srcColumnIndex , ValueEval arg1 , ValueEval arg2 ) { try { Double number1 = evaluateValue ( arg1 , srcRowIndex , srcColumnIndex ) ; if ( number1 == null ) { return ErrorEval . VALUE_INVALID ; } Double number2 = evaluateValue ( arg2 , srcRowIndex , srcColumnIndex ) ; if ( number2 == null ) { return ErrorEval . VALUE_INVALID ; } return ( number1 . compareTo ( number2 ) == 0 ) ? ONE : ZERO ; } catch ( EvaluationException e ) { return e . getErrorEval ( ) ; } }
public override ValueEval Evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg1, ValueEval arg2){ValueEval veText1;try{veText1 = OperandResolver.GetSingleValue(arg1, srcRowIndex, srcColumnIndex);}catch (EvaluationException e){return e.GetErrorEval();}String strText1 = OperandResolver.CoerceValueToString(veText1);Double number1 = OperandResolver.ParseDouble(strText1);if (double.IsNaN(number1)){return ErrorEval.VALUE_INVALID;}ValueEval veText2;try{veText2 = OperandResolver.GetSingleValue(arg2, srcRowIndex, srcColumnIndex);}catch (EvaluationException e){return e.GetErrorEval();}String strText2 = OperandResolver.CoerceValueToString(veText2);Double number2 = OperandResolver.ParseDouble(strText2);if (double.IsNaN(number2)){return ErrorEval.VALUE_INVALID;}int result = NumberComparer.Compare(number1, number2);return result == 0 ? ONE : ZERO;}
