string zu einer Gleitkommazahl zusammenführen

hans-sonny

Bekanntes Mitglied
hi leute,

ich hab ein programm, welches mir eine eingabe zum Beispiel 1,0 oder 1,3 oder so also ein gleitkomma zahl in eine string zerlegt

also 2x in und einen char,

wie kann ich aus dem string wieder eine gleitkommazahl machen?


mein code:

Java:
String note = EINGABE.next(NOTE);
            int ganzeNote = note.charAt(0) - '0';
            char komma = note.charAt(1);
            int zehntelNote = note.charAt(2) - '0';
            boolean richtig = false;


danach kommen ein paar abfragen zur kontrolle der eingabe
 
Java:
// in dem eingegebenen String das Komma durch einen Punkt ersetzen
String noteDotted = note.replace(",", ".");

// den eingegebenen String in eine double-Variable parsen/einlesen
double noteDouble = Double.parseDouble(noteDotted);

Ist ein naiver Ansatz, sollte aber funktionieren.

Edit: andere Umwandlungsmethode.
Edit2: Kommentare hinzugefügt.
 
Zuletzt bearbeitet von einem Moderator:
Wenn ich mal deinen Code oben weiterführe (von dem ich jetzt nicht überprüft habe, ob das Zerlegen so funktioniert, wie du das willst):

Java:
String neueNoteString = ""+ganzeNote+komma+zehntelNote;
double neueNote = Double.parseDouble(neueNoteString);


EDIT:
Ach so, gman hat Recht, was das Komma betrifft, da musst du drauf achten, dass es ein Punkt ist und kein Komma, sonst gibt's beim Umwandeln in ein Double eine Fehlermeldung.
 
Java:
// in dem eingegebenen String das Komma durch einen Punkt ersetzen
String noteDotted = note.replace(",", ".");

// den eingegebenen String in eine double-Variable parsen/einlesen
double noteDouble = Double.parseDouble(noteDotted);

Ist ein naiver Ansatz, sollte aber funktionieren.

Edit: andere Umwandlungsmethode.
Edit2: Kommentare hinzugefügt.

ja aber bei meinem programm ist es so dass eingaben mit . und , zugelassen werden ....

also wenn ich einen 1.0 oder 1,0 eingebe dann wird beides als gültig akzeptiert
 
Es gibt auch Double#valueOf.
Wie du das ganze wieder zusammenstellst könnte so aussehen:
Java:
String s = ganzeNote+"."+zehntelNote
Nja, bloß geben diese valueOf()-Methoden ein Objekt der Wrapper-Klasse zurück; weiß nicht, ob das für einen Anfänger sinnvoll ist, damit zu arbeiten. Macht höchstens noch mehr Schwierigkeiten.

Da fehlt btw. ein Semikolon am Ende vom Code 😉
 
dass eingaben mit . und , zugelassen

Kein Problem! Wenn "1.0" eingegeben wurde dann wird in dem String auch nichts ersetzt und einfach
wieder "1.0" zurück gegeben. Diesen String kannst du dann wie beschrieben in ein double umwandeln.

@XHelp: Ich hatte auch erst "valueOf" geschrieben ;-) Laut der Javadoc wird aber so oder so der
Code von "valueOf" ausgegeben (aus Javadoc zu "parseDouble"):

Returns a new double initialized to the value represented by the specified String, as performed by the valueOf method of class Double.
 
danke also das geht soweit wies aussieht ...

muss nur noch bisschen rumspielen an der darstellung ...


eine frage habe ich noch wie kann ich wenn ich


Java:
System.out.printf("Notensumme ist: %f", notensumme);

mache es auf eine nachkomma stelle beschrenken?
 
Java:
System.out.printf("Notensumme ist: %.2f", notensumme); //wobei die 2 für Anzahl der Nachkommatellen steht
 
Java:
System.out.printf("%.1f", notensumme);

EDIT:
Hrmpf, zu langsam :O

@XHelp:
Okay, dass man da einfach die implizite Konvertierung ausnutzen kann, war mir gerade nicht bewusst. Dachte, man müsste das Double dann noch explizit in double casten.
 
Java:
System.out.printf("Notensumme ist: %.1f", notensumme);

sollte die Ausgabe auf eine Nachkommastelle begrenzen. Das Format für den Format-String kannst du
in der Javadoc zur Klasse "java.util.Formatter" angucken.

Edit: @Haave: Gut das das nicht nur mir passiert 😀
 
ich hab schon wieder eine frage wie kann ich eine ganzzahlige zahl durch eine gleitkomma zahl teilen?

muss ich die dann erst umrechnen?

oder wie läuft das ab?
 
ein durchschnitt

also ich hab eine variable vom typ int und eine vom typ double

wie muss ich die dividieren? bzw das ergebnis ausgeben?

ich möchte dass wieder eine gleitkomma zahl rauskommt ..
 
ich habe aber zahlen die in einer variablen sind

noten die man eingibt

diese addiere ich und bekomme die notensumme ....

und diese notensumme ist die gleitkommazahl

diese möchte ich durch die anzahl der noten teilen, dies ist die int zahl
 
Naja... Vorgehensweise hast du, Summe scheinbar auch, Anzahl auch. Mein Segen kriegst du auch noch...
Ich kann irgendwie keine Frage rauslesen.
 

Zurück
Oben