首页 > 解决方案 > 错误:原因:java.lang.NumberFormatException:对于输入字符串:“3,00”

问题描述

我对编程完全陌生,很难在问题部分找到一些东西 - 对不起!我正在做一个 android 应用程序来计算 Timber-Conrete-Ceilings。该应用程序在模拟器上运行良好,但不适用于手机/平板电脑。当我按下按钮进入下一个活动时,它崩溃了。为了理解:第一个活动称为“lasteingabe”,第二个称为“摘要”。

崩溃活动中的代码 - “Lasteingabe”:

package com.example.hbv_1;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

import java.text.DecimalFormat;
import java.util.Locale;

public class Lasteingabe extends AppCompatActivity{
    private Button button3;
    DecimalFormat eigengewicht = new DecimalFormat("##0.00");

    int γ1 = 25;
    double γ2C24 = 4.2;
    double γ2C30 = 4.6;
    double γGl24h = 3.7;
    double γGl28h = 4.0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lasteingabe);

        Intent intent = getIntent();
        String Stützweite = intent.getStringExtra("Stützweite");
        String BreiteBeton = intent.getStringExtra("BreiteBeton");
        String HöheBeton = intent.getStringExtra("HöheBeton");
        String BreiteHolz = intent.getStringExtra("BreiteHolz");
        String HöheHolz = intent.getStringExtra("HöheHolz");
        String VMAbstand = intent.getStringExtra("VMAbstand");
        String Betongüte = intent.getStringExtra("Betongüte");
        String Holzart = intent.getStringExtra("Holzart");
        String Verbindungsmittel = intent.getStringExtra("Verbindungsmittel");
        String Nutzungklassetxt = intent.getStringExtra("Nutzungsklasse");
        String VMReihen = intent.getStringExtra("VMReihen");
        String lef = intent.getStringExtra("lef");

        Spinner spinner = (Spinner) findViewById(R.id. Trennwandzuschlag);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.Trennwandzuschlag, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

        double stWeite = Double.parseDouble(Stützweite);
        double bBeton = Double.parseDouble(BreiteBeton);
        double hBeton = Double.parseDouble(HöheBeton);
        double bHolz = Double.parseDouble(BreiteHolz);
        double hHolz = Double.parseDouble(HöheHolz);
        double γ2 = 0;

        switch (Holzart) {
            case "NH C24":
                γ2 = γ2C24;
                break;
            case "NH C30":
                γ2 = γ2C30;
                break;
            case "GL 24h":
                γ2 = γGl24h;
                break;
            case "GL 28h":
                γ2 = γGl28h;
                break;
        }

        double Last1 = (γ1 * bBeton * hBeton / 10000);
        String LastBeton = eigengewicht.format(Last1);

        double Last2 = (γ2 * bHolz * hHolz / 10000);
        String LastHolz = eigengewicht.format(Last2);


        TextView EigengewichtBeton = (TextView) findViewById(R.id.EGBeton);
        TextView EigengewichtHolz = (TextView) findViewById(R.id.EGHolz);

        EigengewichtBeton.setText(LastBeton);
        EigengewichtHolz.setText(LastHolz);

        final EditText Fußbodenaufbau = (EditText) findViewById(R.id.editFußbodenaufbau);
        final EditText Nutzlast = (EditText) findViewById(R.id.editNutzlast);

        button3 = (Button) findViewById(R.id.button3);
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Lasteingabe.this, summary.class);
                String Trennwandzuschlagtxt = spinner.getSelectedItem().toString();
                String Fußbodenaufbautxt = Fußbodenaufbau.getText().toString();
                String Nutzlasttxt = Nutzlast.getText().toString();
                intent.putExtra("Trennwandzuschlag", Trennwandzuschlagtxt);
                intent.putExtra("Fußbodenaufbau", Fußbodenaufbautxt);
                intent.putExtra("Nutzlast", Nutzlasttxt);
                intent.putExtra("LastBeton", LastBeton);
                intent.putExtra("LastHolz", LastHolz);
                intent.putExtras(getIntent().getExtras());
                startActivity(intent);

            }
        });
    }
}

错误:

  --------- beginning of crash
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.hbv_1, PID: 11855
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hbv_1/com.example.hbv_1.summary}: java.lang.NumberFormatException: For input string: "3,00"
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3303)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3411)
        at android.app.ActivityThread.-wrap12(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1994)
        at android.os.Handler.dispatchMessage(Handler.java:108)
        at android.os.Looper.loop(Looper.java:166)
        at android.app.ActivityThread.main(ActivityThread.java:7529)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
     Caused by: java.lang.NumberFormatException: For input string: "3,00"
        at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
        at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
        at java.lang.Double.parseDouble(Double.java:539)
        at com.example.hbv_1.summary.onCreate(summary.java:82)
        at android.app.Activity.performCreate(Activity.java:7383)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3256)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3411) 
        at android.app.ActivityThread.-wrap12(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1994) 
        at android.os.Handler.dispatchMessage(Handler.java:108) 
        at android.os.Looper.loop(Looper.java:166) 
        at android.app.ActivityThread.main(ActivityThread.java:7529) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921) 
I/Process: Sending signal. PID: 11855 SIG: 9
Disconnected from the target VM, address: 'localhost:55845', transport: 'socket'

我认为它与“,”有关,但我不知道如何避免它以及为什么它适用于模拟器但不适用于硬件设备......非常感谢你帮助我!

标签: stringcrashnumber-formatting

解决方案


推荐阅读