我实际上是在尝试将字符串数据转换为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 :(得分:1)
在许多情况下可能会发生此错误。 你的字符串示例是&#34;&#34; (空)或未正确解析。
你需要在这里捕捉异常。
像这样......
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]));
}
答案 1 :(得分:0)
你应该检查String&#34; strReceived_freq&#34;的值。可能是&#34;&#34;。
小建议而不是Doulbe.parseDoulbe()你应该使用
Double d = new Double(strReceived_freq);