如何将文本从标签转换为double

时间:2017-06-06 07:29:40

标签: c#

我是C#的新手,刚开始学习如何编码。我试图转换并总结标签中显示的几个项目的金额,然后在另一个标签中显示总数。我使用解析将值转换为double,但我经常收到一条错误消息,说明&#34 ;不能隐式地将int类型转换为string.Here是我的代码示例。

int Cost;

double total = 0;
costLabel.Text = Convert.ToInt32(priceLabel2.Text);
Cost = int.Parse(priceLabel2.Text);
total += double.Parse(priceLabel2.Text);
costLabel.Text = total.ToString("c");

任何人都可以帮我解决这个问题吗?

5 个答案:

答案 0 :(得分:1)

请注意类型;你的代码修改了:

 // Are you sure that price is integer? What about 4.95$? 
 // More natural choice is double (decimal is the best for the currency) 
 double Cost;

 // Let's preserve double (but decimal is a better choice) 
 double total = 0;

 // string assigned to string; no Convert.ToInt32  
 // It's useless line, however, since costLabel.Text = total.ToString("c");
 // will rewrite the label
 costLabel.Text = priceLabel2.Text; 

 // Since cost is not an integer value
 Cost = double.Parse(priceLabel2.Text);

 // You don't want to parse twice
 total += Cost;
 costLabel.Text = total.ToString("c");

更好的选择是使用decimal作为货币:

 decimal total = 0m;

 //TODO: it seem's that you want to add some logic here; otherwise total == cost

 decimal cost = decimal.Parse(priceLabel2.Text);
 total += cost; 

 costLabel.Text = total.ToString("c");

答案 1 :(得分:0)

问题在于costLabel.Text = Convert.ToInt32(priceLabel2.Text);行。你有很多不必要的代码,所以它们都可以简化为以下内容:

double total = double.Parse(priceLabel2.Text);
costLabel.Text = total.ToString("c");

答案 2 :(得分:0)

您将整数分配给字符串,但这些字符串不起作用。您还在同一输入上执行多个操作。对于货币,您必须使用4,因为这是一种更安全(更精确)的数据类型。

decimal

如果您想先验证输入,则应使用decimal total = 0; ... decimal price = Convert.ToDecimal(priceLabel2.Text); total += price; costLabel.Text = total.ToString("c");

decimal.TryParse

答案 3 :(得分:0)

costLabel.Text属性类型是一个字符串。

costLabel.Text = priceLabel2.Text;

答案 4 :(得分:0)

costlLabel.Text是一个字符串,你试着给它一个整数值:

costLabel.Text = Convert.ToInt32(priceLabel2.Text);

改为使用:

costLabel.Text = priceLabel2.Text;