Hallo Leute,
ich bin ein rechter Newbie was Java betrifft und tippe ein wenig vor mich hin.
Letztens bin ich vom Kieselstein zum Berg gekommen:
Eigentlich wollte ich ein Berechnungsprogramm für den *räusper* weibl. Zyklus erstellen (jaja ;-) war eigentlich eher als Witz gedacht) aber ich stieß auf ein Problem: Wie eine konfortable Datumseingabe gestallten und ich kam darauf man könne das ganze als Kommazahl eingeben, also 12.07 für den 12 Juli usw.
Nun, von diesem Problem aus stieß ich auf ein neues: um die Eingabe verarbeiten zu können muss ich in die Ziffern vor und die nach dem Komma trennen können... gesagt getan, Kopf hat gequalmt und ich kam auf folgendes:
soooo... eigentlich sollte es funktionieren (tut es auch) nur bei der letzten Zeile tritt ein Problem auf:
Als Bsp: a = 3.26 und die Ausgabe von e lautet "0.2599999999999998" - ähhhhm, ja, er scheint eine klitzekleine Ungenauigkeit in 0.0'Periode'1 zu haben. Ich kann das Problem so halbwegs umgehen in dem ich z. B. a und d zuvor mit 1000 multipliziere und danach e durch 1000 dividiere, oder ich könnte runden... alles in allem, eine halbe Lösung aber eine für die Auswirkung, ich wüsst aber gern die Ursache.
Es gibt sicher besser Möglichkeiten um a) eine Datumseingabe zu machen und b) eine Zahl in Vor- und Nachkommawerte aufzuteilen, aber was mich fuchst ist eben dass die Doubleverrechnung eine Ungenauigkeit hat.
Weiß jemand wieso, liegt der Fehler bei mir oder ist das normal?
Danke & Grüße
Mats
PS: statt Double eine Float = gleiches Problem
ich bin ein rechter Newbie was Java betrifft und tippe ein wenig vor mich hin.
Letztens bin ich vom Kieselstein zum Berg gekommen:
Eigentlich wollte ich ein Berechnungsprogramm für den *räusper* weibl. Zyklus erstellen (jaja ;-) war eigentlich eher als Witz gedacht) aber ich stieß auf ein Problem: Wie eine konfortable Datumseingabe gestallten und ich kam darauf man könne das ganze als Kommazahl eingeben, also 12.07 für den 12 Juli usw.
Nun, von diesem Problem aus stieß ich auf ein neues: um die Eingabe verarbeiten zu können muss ich in die Ziffern vor und die nach dem Komma trennen können... gesagt getan, Kopf hat gequalmt und ich kam auf folgendes:
Code:
double a, b, c, d, e;
a = 3.26;
// Alibiwerte, da sein könnte dass b, c und d keinen Wert besitzen (lt. Java)
b = 1;
c = a;
d = 1
while (c > 1){
c = a/b;
d = b;
b++;
}
d--;
e = a - d; // Problem!!!
soooo... eigentlich sollte es funktionieren (tut es auch) nur bei der letzten Zeile tritt ein Problem auf:
Als Bsp: a = 3.26 und die Ausgabe von e lautet "0.2599999999999998" - ähhhhm, ja, er scheint eine klitzekleine Ungenauigkeit in 0.0'Periode'1 zu haben. Ich kann das Problem so halbwegs umgehen in dem ich z. B. a und d zuvor mit 1000 multipliziere und danach e durch 1000 dividiere, oder ich könnte runden... alles in allem, eine halbe Lösung aber eine für die Auswirkung, ich wüsst aber gern die Ursache.
Es gibt sicher besser Möglichkeiten um a) eine Datumseingabe zu machen und b) eine Zahl in Vor- und Nachkommawerte aufzuteilen, aber was mich fuchst ist eben dass die Doubleverrechnung eine Ungenauigkeit hat.
Weiß jemand wieso, liegt der Fehler bei mir oder ist das normal?
Danke & Grüße
Mats
PS: statt Double eine Float = gleiches Problem