2015-04-06 54 views
0

我是Java中的新手。我需要命令一个类型为float的数组作为后代,但我的代码似乎不起作用按派生顺序排列float类型的数组java

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]); 
     } 
    } 

} 
+0

_but我的代码似乎不工作_你的广泛调试揭示了什么? –

回答

0

我运行了你的代码,在将23.6和10.9声明为float之后,它运行正常。

float []nums={23.6f,35,5,4,4,3,10.9f,2,45,56}; 
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]); 
    } 
0

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

如果你不这样做,它会将它读取为双精度。

您的选择是:

  1. 追加F到带小数点的每个号码。
  2. 使用“Double”而不是“Float”。