2015-04-06 61 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」。