我正在尝试为我的作业找到两个给定数字数组的总数,但我一直收到错误:
无法将类型'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);
答案 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());