无法找到隐式广告

时间:2016-09-02 12:06:19

标签: c#

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

  

无法将类型'double'隐式转换为'int'。存在显式转换(您是否错过了演员?)

int[] firstarray= new int[4] { 4, 20, 60, 150 };
double[] secondarray= new double[4] { 5, 40.5, 65.4, 145.98 };

firstarray[0] = 20;
secondarray[1] = 5;

int totalarrays = firstarray[0] + secondarray[1];
Console.WriteLine("Total of the two arrays " + totalarrays);

3 个答案:

答案 0 :(得分:1)

int totalarays = firstarray[0] + secondarray[1];

应该是

double totalarays = firstarray[0] + secondarray[1];

int + double最终在double。如果它没有在结果中失去double的精度 - 没有隐含的方法来做到这一点。

如果您需要将double转换为int,则many different techniques取决于您的要求。

答案 1 :(得分:0)

当你这样做时

int totalarays = firstarray[0] + secondarray[1];

您正在尝试添加double(secondarray [1])和int(firstarray [0]),并将结果转换为int。这可能会失去精度,因为double值的小数部分将通过向下舍入来删除。这就是编译器警告你的内容。

要表明您对此感到满意,可以写下:

int totalarays = firstarray[0] + (int)secondarray[1];

这是通过强制转换将双值显式转换为

答案 2 :(得分:0)

这应该有用。

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