当我尝试将字符串转换为double时,无效的double

时间:2017-07-11 12:44:20

标签: java android

我实际上是在尝试将字符串数据转换为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]));
 }

感谢您的帮助!

2 个答案:

答案 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);