Calc.NET Supports string evaluation, operator precendence, custom functions with variable arguments, and more.