猿问

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

我正在尝试对我从标签中获取的价格进行非常简单的百分比乘法。到目前为止,我所拥有的非常简单:


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();

}

问题是,当我尝试使用实时数据运行报告时,我收到一条错误消息


输入字符串的格式不正确。


我怀疑这是因为我尝试使用的字符串是开头带有美元符号的双精度数。(如果我自己运行它,标签确实会显示一个美元符号。)


我该如何解决这个问题?我怎样才能从字符串中删除美元符号来做那个简单的数学方程?这甚至是我得到错误的原因吗?


慕虎7371278
浏览 200回答 1
1回答

一只甜甜圈

解析函数允许您忽略货币符号。这样您就不必担心每个货币符号的 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();}
随时随地看视频慕课网APP
我要回答