按降序顺序排序类型为float的数组

时间:2015-04-06 17:22:09

标签: java

我是Java的新手。我需要命令一个类型为float的数组,但是我的代码似乎不起作用

package java1;
import java.util.Arrays;
import java.util.Collections;
public class Orden{
    public static void main(String[] args) {
        float []nums={23.6,35,5,4,4,3,10.9,2,45,56};
        Float[]floatArray=new Float[nums.length];
        for (int i = 0; i < nums.length; i++) {
            floatArray[i]=nums[i];
        }
        Arrays.sort(floatArray,Collections.reverseOrder());
        for (int i = 0; i < floatArray.length; i++) {
            System.out.println("num:"+floatArray[i]);
        }
    }

}

3 个答案:

答案 0 :(得分:0)

关键是将浮点数传递给float数组。即指定f到数字的值。

    float[] nums = {23.6f, 35f, 5f, 4f, 4f, 3f, 10.9f, 2f, 45f, 56f};

试试这个......这很有效。

    float[] nums = {23.6f, 35f, 5f, 4f, 4f, 3f, 10.9f, 2f, 45f, 56f};
    Float floatArray[] = new Float[nums.length];
    for (int i = 0; i < nums.length; i++) {
        floatArray[i] = nums[i];
    }
    Arrays.sort(floatArray, Collections.reverseOrder());
    for (int i = 0; i < floatArray.length; i++) {
       System.out.println("num:" + floatArray[i]);
    }

答案 1 :(得分:0)

我运行了你的代码,在将23.6和10.9声明为float后,它对我来说很好。

float []nums={23.6f,35,5,4,4,3,10.9f,2,45,56};

答案 2 :(得分:0)

您应该将f附加到带有小数点的每个常量数,以使Java编译器像浮点数一样读取它。

如果你没有,它会把它读成双倍。

您的选择是:

  1. 将f附加到带小数点的每个数字。
  2. 使用&#34; Double&#34;而不是&#34; Float&#34;。