gpt4 book ai didi

java - 如何将 int 数组的运算结果转换为 double?

转载 作者:行者123 更新时间:2023-12-01 10:13:41 26 4
gpt4 key购买 nike

我正在迭代一个 int 数组来查找中位数,然后返回中位数,这部分程序似乎可以工作。

但是,中位数必须转换为 double 并且它显示小数位,但没有产生正确的输出,为什么?

import java.util.*;

public class Example
{
public static void main(String[] args)
{
int[] exampleArray = {2, 5, 10, 19, 23, 34};
System.out.println("Median is: " + findMedian(exampleArray));
// The output produced here should be 14.5 not 14.0
}

public static double findMedian(final int[] tempArray)
{
int median = 0,
Index = tempArray.length / 2;

if(tempArray.length % 2 == 1)
{
median = tempArray[Index];

/* I believe the problem is breaking down here I can't cast Index or
the tempArray to a double. I can copy the array elements into a new double array
but I tried that as well and the output was still off.
*/
}
else
median = (tempArray[Index] + tempArray[Index - 1]) / 2;

return (double)median;
}
}

最佳答案

正如您所怀疑的,您的问题在于线路

median = (tempArray[Index] + tempArray[Index - 1]) / 2;

这一行正在进行整数除法。整数除法是将一个整数除以另一个整数时发生的情况,并将结果取整,因此 5/2 是 2,即使 5.0/2.0 是 2.5。

你需要一行像

double preciseMedian = (tempArray[Index] + tempArray[Index - 1]) / 2.0;

小数点使 2.0 成为 double ,这使得整个除法发生在小数位上。然后您需要将其存储在 double 变量中,因为您无法将其放入 int 中。

关于java - 如何将 int 数组的运算结果转换为 double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36020828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com