Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an.

Kleechen

Mitglied
Hallöle,

Ich fange gerade aus schulischen Gründen mit Informatik an und nun bin ich hier.
Wir machen da gerade einen Addition- und Subtraktionsrechner.
Ich wollte weiter daran arbeiten und bin nun auf ein Problem gestoßen bei Division, das wären wie im Titel geschrieben, die Komma Zahlen.
Ich habe auch schon gelesen, das viele dieses generelle Problem mit Kommazahlen haben aber nicht in dem Kontext.
Hier der Code von der Division:

Divisions Code:
public void bDivision_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    int Zahl1 = jNumberField1.getInt();
    int Zahl2 = jNumberField2.getInt();
    int division = Zahl1 / Zahl2;
    jLabel1.setText("" + division);
  } // end of bDivision_ActionPerformed

Hier ein paar Bilder vom Aufbau und Struktur für einen Überblick:
Rechner.PNG
Struktur.PNG

Meine Frage ist bestimmt klar könnte mir jemand (nicht einfach nur zeigen) sondern erklären wie genau das Funktioniert, das mit den Kommazahlen?
P.S.: Das ist keine Hausaufgabe!! Ich möchte einfach nur wen beindrucken doch sitze nun fest.

Dankeschön im Vorraus
 
Beste Antwort
Hallo du hast den Datentyp Intager gewählt. Intager ist eine Ganzzahl.
Das Ergebnis ist bei dir auch wider nur ein Intager Ganzzahl.

Datentyp kommazahken ist entweder "float" mit einfacher Genauigkeit oder "double" mit doppelter Genauigkeit.

Zu mindestens gut das Ergebnis musst du float oder double benutzen.

Jw456

Top Contributor
Hallo du hast den Datentyp Intager gewählt. Intager ist eine Ganzzahl.
Das Ergebnis ist bei dir auch wider nur ein Intager Ganzzahl.

Datentyp kommazahken ist entweder "float" mit einfacher Genauigkeit oder "double" mit doppelter Genauigkeit.

Zu mindestens gut das Ergebnis musst du float oder double benutzen.
 
Beste Antwort

Robert Zenz

Bekanntes Mitglied
Java implementiert Integer-Division, also "integer / integer = integer". Wenn du mit Float/Double rechnen willst, muss mindests einer der Operatoren ein "float"/"double" sein, "float / integer = float". Oder du verwendest direkt BigDecimal fuer arbitraere Genauigkeit.

Also dabei geht es auch darum wie Datentypen gewaehlt werden bei Operationen. Wenn du eine Operation mit nur "int"s hast, bekommst du einen "int" heraus. Wenn du einen "float" hinzufuegst, bekommst du einen "float" als Ergebnis, und wenn ein "double" dabei ist, ist es immer "double". Also Java "vergroeszert" sich nur auf den naechsten Datentypen wenn es notwendig ist. "Verkleinern" hingegen funktioniert nur mit einem Cast, also wenn du "int / float" hast, und du willst "int" als Ergebnis, musst du entweder den Operanten oder as Ergebnis selbst auf "int" casten.
 

Kleechen

Mitglied
Hallo du hast den Datentyp Intager gewählt. Intager ist eine Ganzzahl.
Das Ergebnis ist bei dir auch wider nur ein Intager Ganzzahl.

Datentyp kommazahken ist entweder "float" mit einfacher Genauigkeit oder "double" mit doppelter Genauigkeit.

Zu mindestens gut das Ergebnis musst du float oder double benutzen.
Danke dir jetzt funktioniert es, aber klar warum bin ich nicht selber darauf gekommen das wurde uns sogar erklärt...

Dankeschön für deine Hilfe!
 

EinNickname9

Bekanntes Mitglied
Hier ist mal ein ganz einfaches Beispiel, dass deinem Kenntnisstand entsprechen sollte:

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Locale;

public class Rechner extends JFrame implements ActionListener {

    private JFormattedTextField zahl1 = new JFormattedTextField(0.0);
    private JFormattedTextField zahl2 = new JFormattedTextField(0.0);
    private JTextField ergebnis = new JTextField();

    public Rechner() {
        JButton button = new JButton("berechne");

        setLayout(new GridLayout(2, 2));
        add(zahl1);
        add(zahl2);
        add(button);
        add(ergebnis);

        pack();
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setVisible(true);

        button.addActionListener(this);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() instanceof JButton && ((JButton) e.getSource()).getText().equals("berechne")) {
            try {
                double d1 = (double) zahl1.getValue();
                double d2 = (double) zahl2.getValue();
                double d3 = d1 / d2;
                ergebnis.setText(String.format(Locale.GERMAN, "%f", d3));
            } catch (Exception ex) {
            }
        }
    }

    public static void main(String[] args) {
        Rechner rechner = new Rechner();
    }
}
 

Kleechen

Mitglied
Java implementiert Integer-Division, also "integer / integer = integer". Wenn du mit Float/Double rechnen willst, muss mindests einer der Operatoren ein "float"/"double" sein, "float / integer = float". Oder du verwendest direkt BigDecimal fuer arbitraere Genauigkeit.

Also dabei geht es auch darum wie Datentypen gewaehlt werden bei Operationen. Wenn du eine Operation mit nur "int"s hast, bekommst du einen "int" heraus. Wenn du einen "float" hinzufuegst, bekommst du einen "float" als Ergebnis, und wenn ein "double" dabei ist, ist es immer "double". Also Java "vergroeszert" sich nur auf den naechsten Datentypen wenn es notwendig ist. "Verkleinern" hingegen funktioniert nur mit einem Cast, also wenn du "int / float" hast, und du willst "int" als Ergebnis, musst du entweder den Operanten oder as Ergebnis selbst auf "int" casten.
Auch dir danke für deine Antwort und Hilfe!
Hier ist mal ein ganz einfaches Beispiel, dass deinem Kenntnisstand entsprechen sollte:

Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Locale;

public class Rechner extends JFrame implements ActionListener {

    private JFormattedTextField zahl1 = new JFormattedTextField(0.0);
    private JFormattedTextField zahl2 = new JFormattedTextField(0.0);
    private JTextField ergebnis = new JTextField();

    public Rechner() {
        JButton button = new JButton("berechne");

        setLayout(new GridLayout(2, 2));
        add(zahl1);
        add(zahl2);
        add(button);
        add(ergebnis);

        pack();
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setVisible(true);

        button.addActionListener(this);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() instanceof JButton && ((JButton) e.getSource()).getText().equals("berechne")) {
            try {
                double d1 = (double) zahl1.getValue();
                double d2 = (double) zahl2.getValue();
                double d3 = d1 / d2;
                ergebnis.setText(String.format(Locale.GERMAN, "%f", d3));
            } catch (Exception ex) {
            }
        }
    }

    public static void main(String[] args) {
        Rechner rechner = new Rechner();
    }
}
Lieben, Lieben Dank für deine Mühe und Antwort aber ich verstehe leider nicht zu 100% was du da geschrieben hast.

Troztdem Danke :)
 

Neumi5694

Top Contributor
Auch dir danke für deine Antwort und Hilfe!

Lieben, Lieben Dank für deine Mühe und Antwort aber ich verstehe leider nicht zu 100% was du da geschrieben hast.

Troztdem Danke :)
Lass dich nicht von etwas auführlichem Code verwirren, letztendlich handelt es sich um eine Reihe einfacher Befehle.

Der Zauber der Berechnung finder im try-catch Block statt. Alles andere konfiguriert und steuert die UI.
Geh den Block mal Zeile für Zelle durch. Ich bin sicher, dass du dann verstehst, was dort passiert.
Und schlag nach was ein JFormattedTextfield ist.
 

Kleechen

Mitglied
Lass dich nicht von etwas auführlichem Code verwirren, letztendlich handelt es sich um eine Reihe einfacher Befehle.

Der Zauber der Berechnung finder im try-catch Block statt. Alles andere konfiguriert und steuert die UI.
Geh den Block mal Zeile für Zelle durch. Ich bin sicher, dass du dann verstehst, was dort passiert.
Und schlag nach was ein JFormattedTextfield ist.
Mache ich mal Danke euch! :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 20
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
Z Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
R Methoden Taschenrechner Java Basics - Anfänger-Themen 4
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
I Java Starthilfe (Taschenrechner) Java Basics - Anfänger-Themen 7
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
D Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
A Taschenrechner programmieren Java Basics - Anfänger-Themen 5
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
N Taschenrechner mit Unterprogra Java Basics - Anfänger-Themen 6
C Taschenrechner Java Basics - Anfänger-Themen 12
Z Taschenrechner programmieren Java Basics - Anfänger-Themen 5
E Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 8
K Taschenrechner Java Basics - Anfänger-Themen 25
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
D Taschenrechner Java Basics - Anfänger-Themen 28
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26
J Grafischen Taschenrechner programmieren - Frage dazu Java Basics - Anfänger-Themen 12
W Taschenrechner Java Basics - Anfänger-Themen 2
T Tasten vom Taschenrechner? Java Basics - Anfänger-Themen 3
S Datentypen Taschenrechner Java Basics - Anfänger-Themen 13
J Taschenrechner Java Basics - Anfänger-Themen 5
J Taschenrechner Java Basics - Anfänger-Themen 9
M While bei einem Taschenrechner Java Basics - Anfänger-Themen 5
F Datentypen Ganz simpler Taschenrechner mit switch Java Basics - Anfänger-Themen 10
U Taschenrechner "Clear und Minusbutton" Java Basics - Anfänger-Themen 6
K Taschenrechner Java Basics - Anfänger-Themen 4
S Taschenrechner in Java - sinnvoll? Java Basics - Anfänger-Themen 3
M Taschenrechner Java Basics - Anfänger-Themen 15
N Taschenrechner mit plus Java Basics - Anfänger-Themen 8
E Anfänger Taschenrechner Java Basics - Anfänger-Themen 3
N Einfacherer Taschenrechner, ActionListener funzt nicht. Java Basics - Anfänger-Themen 8
Knizz Taschenrechner Java Basics - Anfänger-Themen 8
Knizz Taschenrechner über cmd Java Basics - Anfänger-Themen 9
JavaKaffee Taschenrechner, Methode schreiben? Java Basics - Anfänger-Themen 6
J Taschenrechner Combobox Reaktion auf Auswahl Java Basics - Anfänger-Themen 2
D Rücktaste bei einem Java Taschenrechner Java Basics - Anfänger-Themen 6

Ähnliche Java Themen


Oben