加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何将字符串转换为十进制?

发布时间:2020-12-15 23:42:22 所属栏目:百科 来源:网络整理
导读:我有这个接受数字,逗号和句号的文本框. 假设此文本框包含输入14,500.00 我尝试使用Convert.ToDecimal(textbox.text)将此数字转换为十进制,但它不起作用. Convert.ToDecimal()到包含格式为XXXX.DD的输入的文本框将转换为十进制但输入格式为X,XXX.DD或任何带有
我有这个接受数字,逗号和句号的文本框.

假设此文本框包含输入14,500.00

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

Input string was not in correct format

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

附加信息:

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

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

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

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

解决方法

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

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

Is Convert.ToDecimal() appropriate in this case?

是的,如果需要,您还可以继续使用Convert.ToDecimal:

d = Convert.ToDecimal("14,CultureInfo.InvariantCulture);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读