2016-03-08 2 views
0

Je reçois juste une valeur 0.008466 à partir d'une requête PHP, et je la convertis en float mais je n'arrive pas à l'obtenir.Java.lang.numberformatexception: Float invalide "0.008466"

J'ai essayé d'utiliser Numberformat et DecimalFormat et Float.parseFloat mais rien ... travailler

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()); 
    } 
} 

Toute idée?

+0

Eh bien, si le point est le problème, le remplacer par lui-même ne fera rien pour le résoudre. – Thomas

+0

Cela vient d'un code php donc probablement un autre encodage donc le remplacement d'un point bizarre par un point décimal devrait le réparer. –

+0

Si vous n'utilisez pas le "point bizarre" comme entrée dans la méthode de remplacement, il ne sera pas remplacé, c'est-à-dire que vous devrez connaître le type de "point étrange" auquel vous devez vous attendre. Si vous utilisez la chaîne littérale '". "', Ce sera toujours le caractère _same_. – Thomas

Répondre

0

Merci pour @Thomas, il y avait un mauvais caractère caché dans la chaîne, mais pas le tableau Array. :)