сделать расчет и поджарить его --- ошибка - PullRequest
2 голосов
/ 23 февраля 2011

в моем приложении у меня есть три editText, где пользователь может поместить число. Затем. Когда пользователь нажимает кнопку, я получаю результат моих вычислений в другой editext.

это мой код, ноприложение сбивает ... может помочь, пожалуйста?

код:

 float result = (float) ((((new Double(input11.getText().toString())
                                                    + new Double(input21.getText().toString()))/2)*0.3)+ (new Double(input31.getText().toString())*0.7));

                                    vprosvasis.setText(Float.toString(result));}

расчет:

 float genikosvathmos = (float) ((new Double(vprosvasis.getText().toString())+new Double(vprosvasis7.getText().toString())+ new Double(vprosvasis2.getText().toString())+new Double(vprosvasis3.getText().toString())
                                                        +new Double(vprosvasis4.getText().toString())+new Double(vprosvasis5.getText().toString())+new Double(vprosvasis6.getText().toString()))/7);


                                 float moria=(float) (((new Float ((genikosvathmos*8)+("vprosvasis * 1.3")+("vprosvasis2 * 0,7"))*100)));       

                                 Toast.makeText(thetiki.this, "Genikos vathmos"+moria , Toast.LENGTH_SHORT).show();

logCat:

02-23 13:57:50.255: WARN/dalvikvm(20923): threadid=1: thread exiting with uncaught exception (group=0x4001d7d0)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923): FATAL EXCEPTION: main
02-23 13:57:50.364: ERROR/AndroidRuntime(20923): java.lang.NumberFormatException: 
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at org.apache.harmony.luni.util.FloatingPointParser.parseFltImpl(Native Method)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at org.apache.harmony.luni.util.FloatingPointParser.parseFloat(FloatingPointParser.java:321)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at java.lang.Float.parseFloat(Float.java:291)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at java.lang.Float.<init>(Float.java:111)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at kostas.menu.moria.thetiki$8.onClick(thetiki.java:372)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at android.view.View.performClick(View.java:2461)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at android.view.View$PerformClick.run(View.java:8888)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at android.os.Handler.handleCallback(Handler.java:587)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at android.os.Looper.loop(Looper.java:123)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at android.app.ActivityThread.main(ActivityThread.java:4627)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at java.lang.reflect.Method.invokeNative(Native Method)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at java.lang.reflect.Method.invoke(Method.java:521)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
02-23 13:57:50.364: ERROR/AndroidRuntime(20923):     at dalvik.system.NativeStart.main(Native Method)
02-23 13:57:50.399: WARN/ActivityManager(2944):   Force finishing activity kostas.menu.moria/.thetiki

Ответы [ 3 ]

3 голосов
/ 23 февраля 2011

Вы получаете NumberFormatException.Это потому, что ваш float содержит строки и не может быть проанализирован, здесь: new Float ((genikosvathmos*8)+("vprosvasis * 1.3")+("vprosvasis2 * 0,7"))*100))

Просто избавьтесь от ""

Редактировать:

Кроме того, как vprosvasis и т. Д., Это EditTexts или какой-либо другой вид ввода, вы должны преобразовать их значения надлежащим образом, чтобы иметь возможность выполнять вычисления с ними.Одна из возможностей:

float vprosvasisFloat = Float.parseFloat(vprosvasis.getText().toString());

Затем вы можете выполнить свои расчеты, используя vprosvasisFloat вместо vprosvasis

2 голосов
/ 23 февраля 2011

Эта строка действительно странная, вы использовали кавычки там, где вы не должны, и вы использовали "," в качестве десятичного разделителя. Также есть несколько бесполезных скобок:

float moria = (float) (((new Float ((genikosvathmos*8)+("vprosvasis * 1.3")+("vprosvasis2 * 0,7"))*100)));

Вы должны написать

float moria = (float) ((genikosvathmos * 8.0 + vprosvasis * 1.3 + vprosvasis2 * 0.7) * 100.0);
0 голосов
/ 23 февраля 2011

конвертировать Морию в строку, а затем сделать тост ..

String.valueOf(moria)
...