C# 找不到隐式强制转换的位置

C# 找不到隐式强制转换的位置,c#,C#,我试图为我的作业找到两个给定数字数组的总数,但我一直收到错误: 无法将类型“double”隐式转换为“int”。存在显式转换。是否缺少强制转换 当你这样做的时候 int totalarays = firstarray[0] + secondarray[1]; 您正试图添加一个双精度secondarray[1]和一个整数firstarray[0],并将结果转换为整数。这可能会丢失精度,因为双精度值的小数部分将通过向下舍入删除。这就是编译器警告您的 为了表明您对它感到满意,您可以写: int to

我试图为我的作业找到两个给定数字数组的总数,但我一直收到错误:

无法将类型“double”隐式转换为“int”。存在显式转换。是否缺少强制转换

当你这样做的时候

int totalarays = firstarray[0] + secondarray[1];
您正试图添加一个双精度secondarray[1]和一个整数firstarray[0],并将结果转换为整数。这可能会丢失精度,因为双精度值的小数部分将通过向下舍入删除。这就是编译器警告您的

为了表明您对它感到满意,您可以写:

int totalarays = firstarray[0] + (int)secondarray[1];
这是通过强制转换将双精度值显式转换为int

int totalarays = firstarray[0] + secondarray[1];
应该是

double totalarays = firstarray[0] + secondarray[1];
int+a双精度以双精度结尾。如果不这样做,你将失去结果中的双精度-没有隐含的方法来做到这一点

如果您需要将double转换为int,则根据您的要求有多种方法。

这应该可以

int totalarrays = firstarray[0] + Int32.Parse(secondarray[1].ToString());

int totalarays=firstarray[0]+secondarray[1];您正在使用一个double进行数学运算,并试图将其包含在整数totalarays中。是否读取到错误?var totalArray=firstarray[0]+secondarray[1];请注意,var并让编译器为您找出类型。错误的意思正是它所说的-您试图在int中放入一个double,但没有从double到int的隐式转换,也不应该这样,因为这会导致潜在的信息丢失。
int totalarrays = firstarray[0] + Int32.Parse(secondarray[1].ToString());