我正在寻找通过正负双数对数组进行排序的解决方案:
例如{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
打印正确?