Unclear what your problem is, but it is generally better to explicitly pass culture information/number format into formatting and parsing functions like:
var numberFormat = new CultureInfo( "en-US", false ).NumberFormat;
numberFormat.CurrencyDecimalSeparator = ",";
numberFormat.CurrencyGroupSeparator = ".";
Console.WriteLine(400000.ToString("C", numberFormat)); // Output: $ 4.000,00
Console.WriteLine(
decimal.Parse(400000.ToString("C", numberFormat),
NumberStyles.Currency | NumberStyles.Number,
numberFormat));