为了账号安全,请及时绑定邮箱和手机立即绑定

对以美元符号 ($) 开头的字符串进行数学运算

对以美元符号 ($) 开头的字符串进行数学运算

C#
慕虎7371278 2021-10-24 16:35:48
我正在尝试对我从标签中获取的价格进行非常简单的百分比乘法。到目前为止,我所拥有的非常简单:private void richText10_BeforePrint(object sender, PrintEventArgs e) {    string label7 = System.Convert.ToString(rptLabelForm.GetCurrentColumnValue("line_selling_price"));    decimal percentage = 80;    decimal price = System.Convert.ToDecimal(label7);    decimal total = price * (percentage / 100);    richText10.Text = total.ToString();}问题是,当我尝试使用实时数据运行报告时,我收到一条错误消息输入字符串的格式不正确。我怀疑这是因为我尝试使用的字符串是开头带有美元符号的双精度数。(如果我自己运行它,标签确实会显示一个美元符号。)我该如何解决这个问题?我怎样才能从字符串中删除美元符号来做那个简单的数学方程?这甚至是我得到错误的原因吗?
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

解析函数允许您忽略货币符号。这样您就不必担心每个货币符号的 String.Replace 问题。


var price = Decimal.Parse(label7, System.Globalization.NumberStyles.AllowCurrencySymbol | System.Globalization.NumberStyles.Number);

long在使用货币值时,也可能不建议使用数据类型。把你的代码改成这个怎么样?


private void richText10_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)

{

    var label7 = System.Convert.ToString(rptLabelForm.GetCurrentColumnValue("line_selling_price"));

    var percentage = 80M;

    var price = Decimal.Parse(label7, System.Globalization.NumberStyles.AllowCurrencySymbol | System.Globalization.NumberStyles.Number);

    var total = price * (percentage / 100M);

    richText10.Text = total.ToString();

}


查看完整回答
反对 回复 2021-10-24
  • 1 回答
  • 0 关注
  • 199 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信