Как удалить конечные нули в десятичной системе счисления в C#
I using the code for price column C# code: sku.SKUPrice = ValidationHelper.GetDecimal(txtActualPrice.Text, default(decimal)); The value is binding the textbox is "0.000000000" I need the output is "0.00" only. The database column datatype is "decimal(18.9)" If I run the " alter table COM_SKU alter Column SKUPrice decimal(18,2) not null" query I am getting below error message. Msg 5074, Level 16, State 1, Line 5 The index 'IX_COM_SKU_SKUPrice' is dependent on column 'SKUPrice'. Msg 4922, Level 16, State 9, Line 5 ALTER TABLE ALTER COLUMN SKUPrice failed because one or more objects access this column.
<pre> <cms:CMSTextBox ID="txtActualPrice" runat="server" EnableViewState="false" CssClass="input__text"></cms:CMSTextBox> <asp:RequiredFieldValidator ID="rfvActualPrice" runat="server" CssClass="EditingFormErrorLabel" ControlToValidate="txtActualPrice"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="revActualPrice" runat="server" CssClass="EditingFormErrorLabel" ControlToValidate="txtActualPrice" ValidationExpression="((\d+)((\.\d{1,100})?))$"> </asp:RegularExpressionValidator>
Что я уже пробовал:
<pre> <cms:CMSTextBox ID="txtActualPrice" runat="server" EnableViewState="false" CssClass="input__text"></cms:CMSTextBox> <asp:RequiredFieldValidator ID="rfvActualPrice" runat="server" CssClass="EditingFormErrorLabel" ControlToValidate="txtActualPrice"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="revActualPrice" runat="server" CssClass="EditingFormErrorLabel" ControlToValidate="txtActualPrice" ValidationExpression="((\d+)((\.\d{1,100})?))$"> </asp:RegularExpressionValidator>
Richard MacCutchan
Сообщение говорит вам, что вы не можете изменить этот столбец, потому что он связан с индексом. Вам нужно удалить индекс и попробовать еще раз.
Ashutosh Gpta
если это просто два десятичное значение, то решение заключается в использовании строку.формат преобразовать в максимум до второго знака после запятой. например, сеи.SKUPrice = строка.Формат("{0:0.##}", txtActualPrice.Текст);
но, похоже, у вас есть проблема индексации, о которой упоминал Ричард выше.