我有一个接受数字,逗号和句点的文本框。

假设此文本框包含输入14,500.00
我试图用Convert.ToDecimal(textbox.text)将此数字转换为十进制,但它不起作用。包含包含Convert.ToDecimal()格式输入的文本框的XXXX.DD转换为十进制,但使用X,XXX.DD格式的输入或任何带有千位分隔符的输入都会导致错误:



在这种情况下,Convert.ToDecimal()是否合适?

附加信息:

这是表格。如果单击“添加”,则“价格”和“数量”的乘积应在datagridview中显示为“金额”。

“添加”按钮中的语法包括:

DataRow dr;
dr = dsDetail.Tables["SalesOrderDetails"].NewRow();
dr["Amount"] = Convert.ToDecimal(txtSellingPrice.Text) * Convert.ToDecimal(txtQuantity.Text);

我的Amount表中的SalesOrderDetails字段的数据类型为decimal(18,2)

最佳答案

您可以强制文化并使用decimal.Parse

decimal d = decimal.Parse("14,500.00", CultureInfo.InvariantCulture); // 14500



是的,如果您愿意,也可以继续使用Convert.ToDecimal:
d = Convert.ToDecimal("14,500.00", CultureInfo.InvariantCulture);

关于c# - 如何将字符串转换为十进制?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21856917/

10-11 09:02