Falsche ausgabe einer Rechnung!

Diskutiere Falsche ausgabe einer Rechnung! im Mobile Geräte Forum; Hallo zusammen, bin neu in der Welt von Java, aber Arbeite mich gut voran. Nun bin ich an einem Punkt wo ich nicht mehr weiter komme und ich eure...

  1. brilzi89
    brilzi89 Mitglied
    Hallo zusammen,
    bin neu in der Welt von Java, aber Arbeite mich gut voran. Nun bin ich an einem Punkt wo ich nicht mehr weiter komme und ich eure Hilfe brauche.
    Ich arbeite an einer App zur berechnung der Ladungssicherung.
    Zur Probe habe ich mal 3 Zahlen und einen Spinner ( der verschiedene Werte hat) addiert.
    Nun folgendes Problem.
    Wenn ich Zahl1 (1) + Zahl2 (1) + Zahl3 (1) + Spinner (0,4) addieren lassen möchte kommt statt 3,4 nur 30,4 raus. Weis einer was ich falsch mache.

    Hier mal die ganze Activity;

    Code (Java):
    public class Ladungssicherung extends AppCompatActivity implements AdapterView.OnItemSelectedListener {




        private EditText winkelinput;
        private String text;


        Dialog epicDialog;
        TextView unicode, ergebnissFeld;
        ImageView muinfoButton, closemuButton, infoalphaButton;

        @SuppressLint("StringFormatInvalid")
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.activity_ladungssicherung);

            winkelinput = (EditText)findViewById(R.id.winkelInput);
            ergebnissFeld= (TextView)findViewById(R.id.ergebniss);


            SharedPreferences sharedPreferences = getSharedPreferences("sharedPrefs", MODE_PRIVATE);
            text = sharedPreferences.getString("text", "");
            winkelinput.setText(text);
            sharedPreferences.edit().remove("text").commit();

        epicDialog = new Dialog(this, android.R.style.Theme_DeviceDefault_Light_NoActionBar_Fullscreen);


            muinfoButton = (ImageView) findViewById(R.id.infomuIcon);
            closemuButton = (ImageView)findViewById(R.id.closemuinfo);
            infoalphaButton = (ImageView)findViewById(R.id.infoalpha);

            muinfoButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    showmuinfo();


                }
            });

            infoalphaButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    showalphawinkel();
                }
            });


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



        }

        public void showalphawinkel(){

           Intent intent = new Intent(this, WinkelmessActivity.class);
           startActivity(intent);


        }




        public void showmuinfo(){

            epicDialog.setContentView(R.layout.muinfo);
            closemuButton = (ImageView) epicDialog.findViewById(R.id.closemuinfo);

            closemuButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    epicDialog.dismiss();
                }
            });

            epicDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            epicDialog.show();
        }





            @Override
            public void onItemSelected (AdapterView < ? > parent, View view,int position, long id){

        }

            @Override
            public void onNothingSelected (AdapterView < ? > parent){

        }

            public void ergebnissFromel(View view){

            EditText feld1 = (EditText) findViewById(R.id.gewichtInput);
            EditText feld2 = (EditText) findViewById(R.id.winkelInput);
            EditText feld3 = (EditText) findViewById(R.id.stfInput);
            Spinner feld4 = (Spinner) findViewById(R.id.spinner1);

            Integer zahl1 = Integer.parseInt(feld1.getText().toString());
            Integer zahl2 = Integer.parseInt(feld2.getText().toString());
            Integer zahl3 = Integer.parseInt(feld3.getText().toString());


            String spinner = feld4.getSelectedItem().toString();

            ergebnissFeld.setText(String.valueOf(zahl1+zahl2+zahl3+spinner));

            }
    }
     
     
  2. Wenn du jetzt Java lernen möchtest, dann sichere dir hier unseren Java-Videokurs heute zum Sonderpreis (hier klicken!)
  3. httpdigest
    httpdigest Bekanntes Mitglied
    Das Problem ist, dass spinner vom Typ String ist und somit keine arithmetische Addition sondern eine String-Konkatenation von "3" (implizit aus dem Integer 3 in einen String konvertiert) + "0,4" stattfindet.
     
  4. brilzi89
    brilzi89 Mitglied
    hättest du einen Tipp wie ich es machen könnte?
     
  5. httpdigest
    httpdigest Bekanntes Mitglied
    ergebnissFeld.setText(String.valueOf(zahl1+zahl2+zahl3+Float.valueOf(spinner)));
     
  6. brilzi89
    brilzi89 Mitglied
    sobald ich die Zahlen eingebe und auf den Button drücke bricht die App ab.

    Logcat zeigt folgendes:

    12-11 20:40:50.203 32598-32598/com.example.michi.trucki E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.michi.trucki, PID: 32598
    java.lang.IllegalStateException: Could not execute method for android:eek:nClick
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:389)
    at android.view.View.performClick(View.java:5675)
    at android.view.View$PerformClick.run(View.java:22641)
    at android.os.Handler.handleCallback(Handler.java:836)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:203)
    at android.app.ActivityThread.main(ActivityThread.java:6251)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
    Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:384)
    at android.view.View.performClick(View.java:5675)
    at android.view.View$PerformClick.run(View.java:22641)
    at android.os.Handler.handleCallback(Handler.java:836)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:203)
    at android.app.ActivityThread.main(ActivityThread.java:6251)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
    Caused by: java.lang.NumberFormatException: For input string: "0,1"
    at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1306)
    at java.lang.Float.valueOf(Float.java:424)
    at com.example.michi.trucki.Ladungssicherung.ergebnissFromel(Ladungssicherung.java:141)
    at java.lang.reflect.Method.invoke(Native Method)
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:384)
    at android.view.View.performClick(View.java:5675)
    at android.view.View$PerformClick.run(View.java:22641)
    at android.os.Handler.handleCallback(Handler.java:836)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:203)
    at android.app.ActivityThread.main(ActivityThread.java:6251)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
    12-11 20:40:50.208 905-2510/? W/ActivityManager: Force finishing activity com.example.michi.trucki/.Ladungssicherung
    12-11 20:40:50.211 1444-1448/? E/GED: Failed to execute ioctl 3222824709, BridgeID(5), err(-1)
    12-11 20:40:50.211 1444-1448/? E/GasService: Error on query GED info, err=1
     
  7. Robat
    Robat Bekanntes Mitglied
    Du musst die Zahl als 0.1 eingeben
     
  8. httpdigest
    httpdigest Bekanntes Mitglied
    Ach so, ja, dann so:
    Code (Java):
    ergebnissFeld.setText(String.valueOf(zahl1+zahl2+zahl3+Float.valueOf(spinner.replace(',', '.'))));
     
  9. brilzi89
    brilzi89 Mitglied
    Wo eingeben Robat? beim Spinner habe ich ja den Wert 0,1 ausgewählt.
     
  10. brilzi89
    brilzi89 Mitglied
    vielen dank httpdigest :) so funktioniert es sehr gut.
    Muss mich jetzt mal damit auseinander setzen.
     
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Falsche ausgabe einer Rechnung! - Ähnliche Themen

Ausgabe in JEditorPane mittels HTMLEditorKit zeigt auf bestimmten Systemen falsche Zeichen
Ausgabe in JEditorPane mittels HTMLEditorKit zeigt auf bestimmten Systemen falsche Zeichen im Forum AWT, Swing, JavaFX & SWT
Array in String und String in Array - falsche Ausgaben
Array in String und String in Array - falsche Ausgaben im Forum Java Basics - Anfänger-Themen
Falsche Ausgabe ????
Falsche Ausgabe ???? im Forum Java Basics - Anfänger-Themen
Falsche Ausgabe
Falsche Ausgabe im Forum Java Basics - Anfänger-Themen
Personenverwaltung mit List<>, falsche Ausgaben
Personenverwaltung mit List<>, falsche Ausgaben im Forum Java Basics - Anfänger-Themen
Thema: Falsche ausgabe einer Rechnung!