public override Value Evaluate(Interpreter i) { Value CastedA = new Value(A, i); Value CastedB = new Value(B, i); if( CastedA.Type != ValueType.Decimal ) CastedA.CastAsDecimal(); if( CastedB.Type != ValueType.Decimal ) CastedB.CastAsDecimal(); return new Value((decimal)Math.Pow((double)CastedA.Decimal, (double)CastedB.Decimal)); }