首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#错误(无法将类型'string‘隐式转换为'int')

C#错误(无法将类型'string‘隐式转换为'int')
EN

Stack Overflow用户
提问于 2015-01-27 11:55:06
回答 3查看 49.8K关注 0票数 0

请帮帮我!我不知道如何解决这个问题,我被困在这个问题上已经有一段时间了。这段代码至少应该是什么样子的错误在第8-10行

代码语言:javascript
复制
        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");
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-27 11:58:51

TxtAmountA.Text是一个字符串。您试图将整型变量intAmountA设置为字符串值,因此出现错误。您需要从文本框中的字符串中解析出整数。

代码语言:javascript
复制
intAmountA = int.Parse(TxtAmountA.Text);

但是,请注意,如果TxtAmountA.Text中的内容不是可以转换为整数的内容,则会出现异常。这时您就可以使用条件int.TryParse(string value, out integer);

票数 10
EN

Stack Overflow用户

发布于 2015-01-27 12:11:00

您将希望了解以下内容:

这两个都是基本任务,但对编程来说非常重要。

您有几种方法:

代码语言:javascript
复制
intAmount = Convert.ToInt32(txtAmount.Text);
intAmount = int.Parse(txtAmount.Text);

实现cast的最简单方法是上面的方法。但是,当可能传递无效的用户信息时,就会出现问题。例如,用户传递example会导致异常。

你会想要清理数据。因此,您可以尝试执行以下操作:

代码语言:javascript
复制
int amount;
if(int.TryParse(txtAmount.Text, out amount))
{
     // Properly converted amount to an integer.
}

另一种方法可以是:

代码语言:javascript
复制
int amount = txtAmount.Text.Where(d => char.IsDigit(d));

最安全、最常见的是int.TryParse。但这些都是您应该研究的正确处理数据的方法。

希望这能对你有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2015-01-27 11:58:44

代码语言:javascript
复制
intAmountA = TxtAmountA.Text;
intAmountB = TxtAmountB.Text;
intAmountC = TxtAmountC.Text;

您正在将字符串类型值分配给int类型变量。

这会将字符串值转换为它们的int类型表示。例如"1“=> 1

代码语言:javascript
复制
intAmountA = int.Parse(TxtAmountA.Text);
intAmountB = int.Parse(TxtAmountB.Text);
intAmountC = int.Parse(TxtAmountC.Text);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28162961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档