public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1) {double result;try {double d0 = singleOperandEvaluate(arg0, srcRowIndex, srcColumnIndex);double d1 = singleOperandEvaluate(arg1, srcRowIndex, srcColumnIndex);double multi = Math.pow(10d,d1);if(d0 < 0) result = -Math.floor(-d0 * multi) / multi;else result = Math.floor(d0 * multi) / multi;checkValue(result);}catch (EvaluationException e) {return e.getErrorEval();}return new NumberEval(result);}

public ValueEval evaluate ( int srcRowIndex , int srcColumnIndex , ValueEval arg0 , ValueEval arg1 ) { double result ; try { double d0 = singleOperandEvaluate ( arg0 , srcRowIndex , srcColumnIndex ) ; double d1 = singleOperandEvaluate ( arg1 , srcRowIndex , srcColumnIndex ) ; double multi = Math . pow ( 10d , d1 ) ; if ( d0 < 0 ) result = - Math . floor ( - d0 * multi ) / multi ; else result = Math . floor ( d0 * multi ) / multi ; checkValue ( result ) ; } catch ( EvaluationException e ) { return e . getErrorEval ( ) ; } return new NumberEval ( result ) ; }
public override ValueEval Evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1){double result;try{double d0 = NumericFunction.SingleOperandEvaluate(arg0, srcRowIndex, srcColumnIndex);double d1 = NumericFunction.SingleOperandEvaluate(arg1, srcRowIndex, srcColumnIndex);result = Evaluate(d0, d1);NumericFunction.CheckValue(result);}catch (EvaluationException e){return e.GetErrorEval();}return new NumberEval(result);}
