出现错误:如果您缺少强制转换,则无法将 double 类型隐式转换为 int

Fre*_*org 0 c#

所以我正在尝试制作一个简单的 CSGO 项目值到键值计算器。我是一个初学者程序员,我收到了这个错误。在谷歌搜索这个错误之后,我似乎找不到问题所在。任何人都可以提供帮助?

private void button1_Click(object sender, EventArgs e)
{
    int itemValue = int.Parse(textBox1.Text);
    int Keys = itemValue * 0.8 / 2.15;

    label2.Text = "Value of item in keys:" + Keys;
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*ann 6

我有点难过这个问题被否决了。是的,这是一个简单的问题,很可能已经在这里得到了解答,但是作为该语言的新手,您怎么知道要搜索什么?:)

有关强制转换和类型转换的说明以及与您的问题类似的示例,请参阅本文

错误就行了int Keys = itemValue * 0.8 / 2.15;。这看起来很简单,但它有几个部分。让我们分解一下。

int Keys 第一部分是变量声明。您正在声明一个名为Keys. 它的类型是int. 很简单。

第二部分是赋值运算符=。它在说“我想Keys成为这个价值”。再次,非常简单。

第三部分是对 右边的所有内容的评估=,归结为一些带小数的数字,对吗?

您的问题是您已声明Keysint,但itemValue * 0.8 / 2.15类型为double,这是一种不同的数字格式,无法转换为整数(程序将如何处理数字的小数部分?)。

因此,您需要声明Keys为“ double Keys”,以便它可以存储您的结果,或者您需要从您的十进制数中获取一个整数值。您可以通过强制转换或使用类中的RoundCeiling、 或Floor方法来做到这一点Math

  • OP在这里,谢谢!这有助于我思考什么!感谢您的快速答复,感谢您的理解! (3认同)