2016-03-08 5 views
0

Я просто получаю значение 0.008466 из запроса php и конвертирую его в float, но не могу его получить.Java.lang.numberformatexception: Invalid float "0.008466"

Я пытался использовать NumberFormat и DecimalFormat и Float.parseFloat, но ничего не работает ...

private void retrieveMinuteByDegreeValueFromPhp() throws IOException { 
    SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFS, 0); 
    SharedPreferences.Editor editor = prefs.edit(); 

    HttpClient httpclient=new DefaultHttpClient(); 
    HttpPost httppost=new HttpPost(URL_PHP_MINUTEDEGREE); 
    HttpResponse response = httpclient.execute(httppost); 

    if (response.getStatusLine().getStatusCode() == 200){ 
     String str = EntityUtils.toString(response.getEntity()); 
     float minuteByDegree = Float.valueOf(str); 
     if (minuteByDegree > 0){ 
      editor.putFloat(MINUTEBYDEGREE, minuteByDegree); 
      editor.commit(); 
     } 
     Log.d("MinuteByDegree","Minutebydegree : " + minuteByDegree); 

    } 
    else { 
     Log.d("MinuteByDegee","Error : " + response.getStatusLine().getStatusCode()); 
    } 
} 

Любая идея?

+0

Ну, если точка - это проблема, тогда ее замена сама по себе не поможет решить ее. – Thomas

+0

Это происходит из php-кода, поэтому, возможно, потребуется еще одна кодировка, чтобы заменить эту странную точку на десятичную точку, чтобы исправить ее. –

+0

Если вы не используете «странную точку» в качестве входного сигнала для метода замены, он не будет заменен, т. Е. Вам действительно нужно знать, какую «странную точку» ожидать. Если вы используете строковый литерал ''. "', Он всегда будет символом _same_. – Thomas

ответ

0

Спасибо за @Thomas, в строке был нечеткий символ, но не массив символов. :)

Смежные вопросы