请帮忙!我不知道如何解决这个问题。我坚持这个并且已经有一段时间了。这段代码看起来应该是什么样的错误是在第8-10行
int intAmountA = 0;
int intAmountB = 0;
int intAmountC = 0;
decimal decPackageA = 0m;
decimal decPackageB = 0m;
decimal decPackageC = 0m;
decimal decTotal = 0m;
intAmountA = TxtAmountA.Text;
intAmountB = TxtAmountB.Text;
intAmountC = TxtAmountC.Text;
decPackageA = intAmountA * 150;
decPackageB = intAmountB * 120;
decPackageC = intAmountC * 90;
LblPackageA.Text = decPackageA.ToString("c");
LblPackageB.Text = decPackageB.ToString("c");
LblPackageC.Text = decPackageC.ToString("c");
decTotal = decPackageA + decPackageB + decPackageC;
LblTotal.Text = decTotal.ToString("c");
答案 0 :(得分:4)
TxtAmountA.Text
是一个字符串。您正在尝试将变量intAmountA
设置为字符串值,从而将错误设置为整数。您需要从文本框中的字符串中解析整数。
intAmountA = int.Parse(TxtAmountA.Text);
但是,请注意,如果TxtAmountA.Text
中的内容不是可以强制转换为整数的内容,则会出现异常。那时您可以使用条件int.TryParse(string value, out integer);
答案 1 :(得分:3)
您想了解:
两者都是基本任务,但对编程非常重要。
您有几种方法:
intAmount = Convert.ToInt32(txtAmount.Text);
intAmount = int.Parse(txtAmount.Text);
cast
的最简单方法是上述方法。但是,当可能传递无效的用户信息时,将发生此问题。例如,用户传递example
会导致异常。
您想要清理数据。所以你可以尝试以下方法:
int amount;
if(int.TryParse(txtAmount.Text, out amount))
{
// Properly converted amount to an integer.
}
另一种方法可能是:
int amount = txtAmount.Text.Where(d => char.IsDigit(d));
最安全,最常见的是int.TryParse
。但这些都是您应该考虑的正确处理数据的方法。
希望这可以帮到你。
答案 2 :(得分:2)
intAmountA = TxtAmountA.Text;
intAmountB = TxtAmountB.Text;
intAmountC = TxtAmountC.Text;
您正在将字符串类型值分配给int类型变量。
这会将字符串值转换为它们的int类型表示形式。 例如“1”=> 1
intAmountA = int.Parse(TxtAmountA.Text);
intAmountB = int.Parse(TxtAmountB.Text);
intAmountC = int.Parse(TxtAmountC.Text);