Skip to main content

Java Übung 19 – Zähle die Kommastellen

In dieser Java Übung möchte ich, dass du eine Methode zum Zählen von Kommastellen schreibst.

Lege dazu eine Klasse „KommaZahl“ an.
Diese Klasse enthält die statische Methode „zaehleKommaStellen“, welche eine Kommazahl als übergebenen Parameter erwartet.

Die Methode bekommt beim Aufruf eine Kommazahl übergeben und soll dann die Anzahl der Nachkommastellen zurückgeben.
Die Methode wird in der main-Methode aufgerufen.
Zur Überprüfung übergib ihr die Zahl 22,55543.

Also dann viel Spaß und Erfolg bei der Lösung dieser Java Übung.


Für die Lösung dieser Java Übung solltest du dich fragen:

Wie würdest du es machen?
Also wenn du diese Aufgabe gestellt bekommst:
Zähle die Kommastellen der Zahl 22,55543.

Dann würdest du beim Komma anfangen zu zählen.
Und du würdest das Komma gedanklich nach rechts verschieben.
Und zwar bis zum Ende der Zahl.

Und genau so, solltest du hier auch vorgehen.
Das Komma einer Zahl schiebst du nach rechts, indem du die Zahl mit 10 multiplizierst.

  • 22,55543 * 10 = 225,5543
  • 225,5543 * 10 = 2.255,543
  • 2.255,543 * 10 = 22.555,43
  • 22.555,43 * 10 = 225.554,3
  • 225.554,3 * 10 = 2.255.543

Das würde bedeuten:

  • Du schreibst eine Methode, welche die übergebene Zahl solange mit 10 multipliziert, bis kein Komma mehr da ist.
  • Gleichzeitig zählt die Methode dann, wie oft die Zahl mit 10 multipliziert werden musste.
  • Und dies ist dann die Anzahl der Nachkommastellen.

Klingt gut?
Denke ich auch – Also machen wir das so.

Und eine bestimmte Anweisung immer und immer wieder ausführen – Macht man am besten mit einer Schleife.
Da die Ausführung an eine Bedingung geknüpft ist, bietet sich die while-Schleife an.

Also kannst du doch im Schleifenkopf folgende Anweisung festlegen.
„Multipliziere solange mit 10 bis die Zahl kein Komma mehr hat.“

Und die Abruchbedingung könnte so lauten:
while (zahl-(int) zahl != 0)
Die übergebene Zahl minus der übergebenen Zahl als Integer ungleich Null.

Das würde für unseren Schleifendurchlauf am Beispiel bedeuten:

  1. Durchlauf: 22,55543 – 22 = 0,55543
  2. Durchlauf: 225,5543 -225 = 0,5543
  3. Durchlauf: 2.255,543-2255=0,543
  4. Durchlauf: 22.555,43-22555=0,43
  5. Durchlauf: 225.554,3-225.554=0,3
  6. Durchlauf: 2.255.543-2.255.543=0

Nach fünf Durchläufen würde die Schleife abrechen.
Das bedeutet es wurde 5-mal mit 10 multipliziert.
Es musste 5-mal das Komma nach rechts verschoben werden.
Die Zahl hat 5 Kommastellen.

So würde der komplette Code zu dieser Java Übung aussehen:


public class KommaZahl {
 
static int zaehleKommaStellen(double zahl) {
int kommaStelle = 0;
while (zahl - (int) zahl != 0) {
zahl = zahl * 10; // Komma wird jeweils 1-mal nach rechts verschoben
kommaStelle++;// Schleifendurchlauf wird gezählt
}
 
return kommaStelle;
}
 
public static void main(String[] args) {
System.out.println(zaehleKommaStellen(22.55543));
}
}

Die Abbruchbedingung der Schleife könntest du auch mit dem Modulo-Operator definieren.
Diese würde dann lauten:
while (zahl % 1 !=0)

Die Schleife würde solange durchlaufen werden, bis die Division durch 1 keinen Restwert mehr hat.
Der Code bei diese Umsetzung würde dann so aussehen:


public class KommaZahl {
 
static int zaehleKommaStellen(double zahl) {
int kommaStelle = 0;
while (zahl %1 != 0) {
zahl = zahl * 10;
kommaStelle++;
}
return kommaStelle;
}
 
public static void main(String[] args) {
System.out.println(zaehleKommaStellen(22.55543));
}
}

Du siehst, oftmals kannst du Probleme auf verschiedene Arten lösen.

Ich hoffe diese Übung hat dir gefallen.
In einer der nächsten Java Übungen vertiefen wir das Ganze noch etwas.


Ähnliche Beiträge

So kannst du deine Java Methoden ausführen

Java Methoden ausführen

Du hast die ersten Java Methoden erstellt. Doch wie greifst du jetzt auf diese zu? Wie kannst du diese Methoden in einer anderen Klassen aufrufen? Welcher Unterschied, hinsichtlich des Methodenaufrufes, besteht eigentlich zwischen deinen Java Methoden? Diese Fragen möchte ich gern in diesem Beitrag beantworten. Gehen wir dazu in den Garten und schauen uns Blumen […]

Die vier verschiedenen Zahlensysteme in der Java Programmierung

Java Zahlensysteme

Java Zahlensysteme – Was soll das? In sämtlichen Programmiersprachen werden Zahlen in Variablen abgespeichert. Wenn du dir die einzelnen primitiven Datentypen in Java einmal anschaust – wirst du feststellen – dass die Masse der Datentypen Zahlen annehmen und speichern können. Zahlen und die Mathematik dahinter spielen in der Programmierung eine sehr große Rolle. Ganz am […]

Warum Java Kommentare immer ein Mittel der Kommunikation sind

Java Kommentare Kommunikation

Kennst Du die Bücherreihe „Miteinander reden“ von Schulz von Thun? Falls Du an der Uni warst oder bist, gehört dieses Buch zur Standardlektüre im Fach Schlüsselkompetenz. Denn ein Java Entwickler, welcher im Team arbeitet, muss klar und deutlich kommunizieren können. Und klar und deutlich heißt nicht, dass die Aussprache Deiner Worte verständlich sein soll. Nein […]

Ein Java Fenster erzeugen mit dem JFrame

Java-Fenster-erzeugen

Ein Java Fenster erzeugen mit Swing. Java Swing – was ist das? Zum Erstellen von grafischen Benutzeroberflächen, kurz GUI, bietet Java eine eigene Standardklasse an. Diese Klasse nennt sich Swing. Aus dieser Swing-Klasse heraus können Objekte erstellt werden. Diese Objekte lassen sich in vier verschiedene Kategorien einteilen. Fenster und Dialoge bilden das Grundgerüst einer grafischen […]

Lexikalik, Syntax und Semantik in Programmiersprachen

Programmiersprachen Semantik Programmiersprachen Syntax Programmiersprachen Lexikalik Java

Java ist eine Programmiersprache. Und wie jede andere Programmiersprache ist auch Java, lediglich eine künstliche Sprache.   Normalerweise bieten künstliche Projekte immer jede Menge Spielraum für Eigenkreationen. Bei der Programmierung ist dies nicht ganz so. Denn Programmiersprachen sind auch immer sehr exakt.   Jede Programmiersprache und auch jede gesprochene Sprache folgt immer einer Abstraktionsreihenfolge, welche […]

So verwendest du Inkrement und Dekrement Operatoren in deinen Java Programmen

Java Operatoren

In diesem Beitrag geht es um Java Operatoren. Ich möchte dir gern zwei neue Operatoren vorstellen. Diese nennen sich Inkrement und Dekrement. Ja was heißt das? Inkrementieren bedeutet eine schrittweise Erhöhung einer Zahl. Und dementsprechend bedeutet Dekrementieren: Die schrittweise Verminderung einer Zahl. Wozu brauchst du das? Stell dir vor. Du bekommst eine Liste mit Namen […]

10 ganz nützlichen Feature der Klasse Java Math

In diesem Beitrag geht es um eine spezielle Java Klasse. Die Klasse nennt sich Java Math. Diese ist in der Standardbibliothek von Java enthalten. Warum solltest du diese Klasse kennen? Die Math Klasse bietet dir einen Menge Methoden an, welche zur Berechnung von mathematischen Gleichungen ganz hilfreich sind. Aber auch für Nichtmathematiker ist etwas dabei. […]

Verwalte deine Java Klassen in packages

java klassen verwalten

Es macht durchaus Sinn deine Java Klassen in verschiedenen Paketen zu organisieren. Wieso? Es sprechen mehrere Gründe dafür: Du kannst doppelte Klassennamen verwenden Du kannst deinen Code oder deine Klassen inhaltlich trennen Du kannst Hierarchien abbilden. Und genau um diese Dinge geht es in diesem Beitrag

Das Instanzieren von Java Klassen verhindern

Java Objekte Instanzieren verhindern

Die Instanzierung von Java Klassen verhindern. Was heißt das? Instanzen sind die Objekte einer Java Klasse. Und Instanzieren oder Instanzierung heißt nichts anderes, als Objekterstellung. Aber was soll das? Oder mal anders gefragt: Wieso sollte man verhindern, dass eine Java Klasse – Objekte erstellen kann? Schließlich sind doch Objekte der Sinn und Zweck jeder objektorientierten […]

So lassen sich aus Java Klassen Instanzen erstellen

Java Klassen Instanzen erstellen

Lass uns jetzt aus den Java Klassen heraus Objekte anlegen. Im Einführungsbeispiel hast du bereits gelernt, wie du: Instanzvariablen bzw. Attribute anlegst Wie du aus einer normalen Java Klasse eine Programmstart Klasse machst In diesem Artikel erfährst du: Was Objekte bzw. Instanzen sind. Wie sich Objekte zusammensetzen. Wo und wie du Instanzen aus Java Klassen […]