Используйте параметр «C» в функции ToString и убедитесь, что вы установили атрибуты globalaztion.
string parseValueIntoCurrency(double number) {
// set currency format
string curCulture = Thread.CurrentThread.CurrentCulture.ToString();
System.Globalization.NumberFormatInfo currencyFormat = new
System.Globalization.CultureInfo(curCulture).NumberFormat;
currencyFormat.CurrencyNegativePattern = 1;
return number.ToString("c", currencyFormat);
}
Если вы хотите использовать другую культуру (скажем, вы в США, и выхотите индийский формат), затем просто используйте соответствующий элемент CultureInfo, а не извлекайте его из текущего потока.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ В ОТНОШЕНИИ ОТ РЕДАКТИРОВАНИЯ
Хорошо, чтоВы хотите сделать это, чтобы получить это в своей сетке, создать функцию PROTECTED, которая принимает число для преобразования и возвращает преобразованную строку (это в основном код выше.
Теперь, насторона ASPX, вам нужно использовать эту функцию в виде сетки.
Итак, вместо этого:
<asp:TemplateField HeaderText="Total Price (in lacs)" >
<EditItemTemplate>
<asp:TextBox ID="txttotal_price" runat="server"
Text='<%# Eval("total_price") %>' />
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbltotal_price" runat="server"
Text='<%# Eval("total_price") %>'> />
</ItemTemplate>
</asp:TemplateField>
вы будете использовать это поле шаблона:
<asp:TemplateField HeaderText="Total Price (in lacs)" >
<EditItemTemplate>
<asp:TextBox ID="txttotal_price" runat="server"
Text='<%# Eval("total_price") %>' />
</EditItemTemplate>
<ItemTemplate>
<%# parseValueIntoCurrency(Eval("total_price")) %>'>
</ItemTemplate>
</asp:TemplateField>
Примечаниедве вещи. Во-первых, я все еще передаю НЕФОРМИРОВАННОЕ значение в ШАБЛОН РЕДАКТИРОВАНИЯ и не создаю экземпляра дополнительной ЭТИКЕТКИ в ШАБЛОНЕ ПУНКТА.
Причина, по которой я не делаюдополнительный ярлык, потому чтонам просто не нужно там.Это просто немного больше ресурсов процессора / памяти, которые вам просто не нужны.
Что касается передачи неформатированного значения в текстовое поле, то это потому, что в конечном итоге его будет проще проверить без разбора запятых и других строковых элементов.