按正数和负数对数组排序(双精度)

时间:2017-12-15 00:03:57

标签: arrays sorting double

我正在寻找通过正负双数对数组进行排序的解决方案: 例如{2.0, -1.0, -5.0, 3.0, -9.0, 1.0}{2.0, 3.0, 1.0, -1.0, -5.0, -9.0}

我发现此代码示例尝试自定义它以适用于双类型数字,但没有成功。

    public static void main(String[] args) {
     double num[] = {5.39, -3.44, -18.12, 1.22, 0.77, -6.8};

    for (int j = num.length - 1; j >= 0; j--) {
        for (int i = 0; i < j; i++) {
            if (Integer.signum((int) num[i]) < Integer.signum((int) num[i+1])) {
                int temp = (int) num[i];
                num[i] = num[i+1];
                num[i+1] = temp;               
            } 
        }  
    }
    System.out.println(Arrays.toString(num));
}

在这种情况下,它会打印出[5.39, 1.22, 0.77, -3.0, -18.0, -6.8]

为什么打印-18.0代替-18.12-3.0代替-3.4,但-6.8打印正确?

0 个答案:

没有答案