private static string ToString(Evaluatable expression, bool isBase) { var asFactor = Factorizer.ToFactor(expression); if (expression is DualComponentExpression || (isBase && (asFactor as NumericFactor)?.Number is Float)) { return string.Format("({0})", expression); } var component = Componentizer.ToComponent(expression); if (component is DualFactorComponent || component is ComponentList) { var output = expression.ToString(); if (output.Contains("(")) { return string.Format("({0})", expression); } } return expression.ToString(); }