2017-07-11 71 views
0

我實際上試圖將雙倍字符串數據轉換。 我不明白爲什麼我一直錯誤「無效的雙」當我嘗試這樣做:當我嘗試將字符串轉換爲雙倍時,無效雙倍

double freq[]=new double[nb_points]; 
double pxx[]=new double[nb_points]; 
int nb_point=100; 

for (int i=0; i<bytes/2;i=i+15) 
{ 
    String strReceived_freq = new String(buffer,i, i+15); 
    freq[i]=Double.parseDouble(strReceived_freq); 
    freq_value.setText(String.valueOf(freq[i])); 
} 

感謝您的幫助!

+0

我覺得使用對象Double obj [] = new Double [size] –

+0

您是否贊同'strReceived_freq'的內容?裏邊啥啊?也許一些錯誤的格式點vs逗號 – Fusselchen

+0

?我爲freq []和pxx [] – azzerty2017

回答

1

有很多情況下可能發生此錯誤。 您的字符串示例爲「」(空)或未正確解析。

你需要在這裏發現異常。

事情是這樣的..

double freq[]=new double[nb_points]; 
     double pxx[]=new double[nb_points]; 
     int nb_point=100; 

     for (int i=0; i<bytes/2;i=i+15) 
     { 
      String strReceived_freq = new String(buffer,i, i+15); 
      try { 
       freq[i]=Double.parseDouble(strReceived_freq); 
      }catch (NumberFormatException e){ 
       freq[i]=0; 
      } 

      freq[i]=Double.parseDouble(strReceived_freq); 
      freq_value.setText(String.valueOf(freq[i])); 
     } 
0

您應該檢查字符串 「strReceived_freq」 的價值可能是 「」。

小的建議,而不是Doulbe.parseDoulbe(),你應該使用

雙d =新的雙(strReceived_freq);