text: public override ValueEval Evaluate(int srcRowIndex, int srcColumnIndex, ValueEval numberVE){String number;if (numberVE is RefEval){RefEval re = (RefEval)numberVE;number = OperandResolver.CoerceValueToString(re.GetInnerValueEval(re.FirstSheetIndex));}else{number = OperandResolver.CoerceValueToString(numberVE);}if (number.Length > 10){return ErrorEval.NUM_ERROR;}String unsigned;bool isPositive;if (number.Length < 10){unsigned = number;isPositive = true;}else{unsigned = number.Substring(1);isPositive = number.StartsWith("0");}String value;try{if (isPositive){int sum = getDecimalValue(unsigned);value = sum.ToString();}else{String inverted = toggleBits(unsigned);int sum = getDecimalValue(inverted);sum++;value = "-" + sum.ToString();}}catch (FormatException){return ErrorEval.NUM_ERROR;}return new NumberEval(long.Parse(value));}