Если у вас разные строки формата, это не значит, что вы должны использовать InvariantCulture.Если у вас есть строка формата для Германии, например, вы форматируете эту строку, используя Культуру ("de-de"):
String.Format(CultureInfo.GetCultureInfo( "de-de" ), "{0:0},-", 2295) //will result in 2.295,-
String.Format(CultureInfo.GetCultureInfo( "en-us" ), "{0:0},-", 2295) //will result in 2,295,-
В качестве альтернативы вы можете указать свой собственный информация о формате чисел :
NumberFormatInfo nfi = new NumberFormatInfo( )
{
CurrencyGroupSeparator = ":"
};
String.Format(nfi, "{0:0},-", 2295) //will result in 2:295,-