Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an.

K

Kleechen

Gast
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:

[CODE lang="java" title="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[/CODE]

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

Top Contributor
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.
 
K

Kleechen

Gast
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();
    }
}
 
K

Kleechen

Gast
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.
 
K

Kleechen

Gast
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
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
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

Ähnliche Java Themen

Neue Themen


Oben