2017-07-11 12 views
0

実際にはdoubleの文字列データを変換しようとしています。 私はこれをしようとするとき、私は常にエラー「無効なダブル」を持っている理由私は理解していない:あなたの助けを文字列をdoubleに変換しようとすると無効なdoubleが返される

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

私はuse object double obj [] = new Double [size] –

+0

あなたは 'strReceived_freq'の内容を手に入れましたか?それには何がありますか?多分何らかの間違ったフォーマットのドット対カンマ – 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)を使用する必要があります。

関連する問題