________________
Настоящий кодекс :
double value = 3317800000;
CultureInfo cInf = (CultureInfo)CultureInfo.InvariantCulture.Clone();
cInf.NumberFormat.NumberGroupSizes = new int [] {2};
string V3 = String.Format(cInf.NumberFormat,"{0:00,00.00}", value);
дает : "33,17,80,00,00.00"
Это то, чего ты хочешь?
Это еще одна версия (по вашему требованию):
double value = 3317800000;
CultureInfo cInf = (CultureInfo)CultureInfo.InvariantCulture.Clone();
cInf.NumberFormat.NumberGroupSizes = new int [] {3,2,2,2};
string V3 = String.Format(cInf.NumberFormat,"{0:0,0.00}", value);
дает "3,31,78,00,000.00" - 3 цифры перед плавающей точкой.
Чем добавить к вашему классу привязки данных :
CultureInfo cInf = null;
public string DobleDigitNumber
{
get
{
double value = Number;//3317800000;
if (cInf == null)
{
cInf = (CultureInfo)CultureInfo.InvariantCulture.Clone();
cInf.NumberFormat.NumberGroupSizes = new int[] { 3, 2, 2, 2 };
}
return String.Format(cInf.NumberFormat,"{0:0,0.00}", value);
}
}
And change the page code:
<asp:BoundField DataField="DobleDigitNumber" />
________________
Вероятно, вам следует дать измененный CultureInfo всему приложению, поэтому стандартное форматирование в вашем приложении будет использовать измененные разделения (как вы определяете).
Если вам нужна двузначная запятая только в одном месте - лучше всего сделать ее видимой и понятной.