protected override void ProcessConvertToDecimal(Type fromType, Type toType, Expression objectNode, ReadOnlyCollection <Expression> args) { if (fromType == typeof(string)) { Write("To_Number("); Visit(objectNode); var formatExpression = args.ElementAtOrDefault(0); if (formatExpression != null) { Write(","); object value; if (TryResolveValue(formatExpression, out value) && value is string) { var formattedValue = ConvertFromDecimalFormat((string)value); Write(formattedValue); } else { Visit(formatExpression); } } Write(")"); } else if (InternalHelper.IsDecimalType(InternalHelper.GetUnderlyingType(fromType))) { Visit(objectNode); } else { Write("To_Number("); Visit(objectNode); Write(")"); } }