Same code to parse int, float, decimal?
If repetition is your primary concern, you could try doing something like this:

public delegate string ParserMethod(string value, NumberStyles numberStyle, CultureInfo inCulture, CultureInfo outCulture);

public static class NumericParser
{
    public static readonly ParserMethod ParseInt = Create&lt;int&gt;(int.TryParse);
    public static readonly ParserMethod ParseFloat = Create&lt;float&gt;(float.TryParse);
    public static readonly ParserMethod ParseDouble = Create&lt;double&gt;(double.TryParse);
    public static readonly ParserMethod ParseDecimal = Create&lt;decimal&gt;(decimal.TryParse);

    public static Logger Logger { get; set; }

    delegate bool TryParseMethod&lt;T&gt;(string s, NumberStyles style, IFormatProvider provider, out T result);
    static ParserMethod Create&lt;T&gt;(TryParseMethod&lt;T&gt; tryParse) where T : IFormattable
    {
        return (value, numberStyle, inCulture, outCulture) =&gt;
        {
            T result;
            if (tryParse(value, numberStyle, inCulture, out result))
            {
                return result.ToString(null, outCulture);
            }
            else
            {
                if (Logger != null &amp;&amp; Logger.IsDebugEnabled)
                    Logger.DebugFormat("Could not parse value \"{0}\" to a {1} using the culture \"{2}\".", value, typeof(T).Name, inCulture);
                return "";
            }
        };
    }
}


This way, you only have to pass around the appropriate ParserMethod you want to use.  In your case, you could map your different mapping values to the appropriate ParserMethod.  And call it when needed.