2017-07-11 70 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);