2011-06-26 4 views
1
enter code here 

06-27 00:34:04.641: ERROR/AndroidRuntime(13633): FATAL EXCEPTION: main 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633): java.lang.RuntimeException: Unable to start activity ComponentInfo{yaraby.y/yaraby.y.ghost}: java.lang.NumberFormatException: 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2685) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at android.app.ActivityThread.access$2300(ActivityThread.java:126) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2038) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at android.os.Looper.loop(Looper.java:123) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at android.app.ActivityThread.main(ActivityThread.java:4633) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at java.lang.reflect.Method.invoke(Method.java:521) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at dalvik.system.NativeStart.main(Native Method) 
    06-27 00:34:04.641: ERROR/AndroidRuntime(13633): Caused by: java.lang.NumberFormatException: 
    06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at org.apache.harmony.luni.util.FloatingPointParser.parseDouble(FloatingPointParser.java:267) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at java.lang.Double.parseDouble(Double.java:287) 
06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at yaraby.y.ghost.onCreate(ghost.java:89) 
    06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
    06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2633) 
    06-27 00:34:04.641: ERROR/AndroidRuntime(13633):  ... 11 more 

Ligne 89 esterreur android en chaîne Parse pour doubler

enter code here 
    Double p1= Double.parseDouble(x); 

ce que je suis receving du serveur est une chaîne et je veux que ce soit double et son déjà un double numéro, mais recive en tant que chaîne

enter code here 
String x=inFromServer.readLine(); 
     String y=inFromServer.readLine(); 


      x=x.trim(); 
    Double p1= Double.parseDouble(x); 
        y=y.trim(); 
     Double p2= Double.parseDouble(y); 
+0

'écrire un commentaire ici' –

+0

Quel commentaire ?? – gfgf

+0

J'étais [facétieux] (http://dictionary.reference.com/browse/facetious). Vous avez encore un certain nombre de textes "entrer le code ici" dans votre question. :) –

Répondre

1

impression que vous String x sur la console, aussi sûr d'utiliser le bon séparateur décimal pour vos paramètres régionaux. Est-ce. ou , ?

Testez-le dans un petit programme.

Cordialement, Stéphane

+0

la chaîne apparaît sur la carte je la grille son apparaître comme '31 .25986114 ' – gfgf

+0

essayer d'analyser x.replace ('. ',', '); – Snicolas

+0

Double p1 = \t Double.parseDouble (x.replace ('.', ',')); comme ça ?? cela donne aussi une erreur et force la fermeture – gfgf

2

-ce que la chaîne comprend "" (comme 123.45) ou "," (comme 123,45)?

Vous devez le remplacer en fonction de vos paramètres régionaux. Essayez le bloc catch aussi fonctionnera.

+0

oui son include "." – gfgf

+0

@ onuray sahin waht puis-je faire? – gfgf

+0

Vous pouvez essayer quelque chose comme: String numberStr = "123.45"; double nombreDouble; try { numberDouble = Double.parseDouble (numberStr); } catch (NumberFormatException e) { numberStr = numberStr.replace (".", ","); numberDouble = Double.parseDouble (numberStr); } –

0

Double.valueOf(string) retourne un Double
Double.parseDouble(string) renvoie le type primitif.
Puisque vous affectez le résultat à un Double, il peut être préférable d'utiliser
Double.valueOf(string).
Je ne peux pas obtenir le code de se casser de toute façon, mais je dirais que ça vaut le coup.