Hi- also vorweg erstma ich bin noch Java-Neuling..
Ich hab jez als Aufgabe bekommen ein Applet zu programmieren, mit dem ich einen Geldbetrag in Euro eingebe und dieser Betrag zerlegt werden soll (also wieviele 500 € scheine, wieviel 200 € scheine usw...)..
soweit so gut mein Code sieht zwar net so richtug toll aus aber er funtz- AUßER, das ich rundungsprobleme bekomme wenn ich modulo nehme, denn 0.03 % 0.02 ist leider nicht 0.01 sondern eben 0.0099999999999998....
wie kann ich einen doublewert aufrunden auf eben 0.01?
ich hoff mal ihr könnt mir helfen
thx schonmal im vorraus...
p.s. wer lust hat kann mir ja vielleicht noch nen verbesserungsvorschlag machen, was den quelltext angeht..
Ich hab jez als Aufgabe bekommen ein Applet zu programmieren, mit dem ich einen Geldbetrag in Euro eingebe und dieser Betrag zerlegt werden soll (also wieviele 500 € scheine, wieviel 200 € scheine usw...)..
soweit so gut mein Code sieht zwar net so richtug toll aus aber er funtz- AUßER, das ich rundungsprobleme bekomme wenn ich modulo nehme, denn 0.03 % 0.02 ist leider nicht 0.01 sondern eben 0.0099999999999998....
wie kann ich einen doublewert aufrunden auf eben 0.01?
ich hoff mal ihr könnt mir helfen
thx schonmal im vorraus...
p.s. wer lust hat kann mir ja vielleicht noch nen verbesserungsvorschlag machen, was den quelltext angeht..
Code:
class Converter {
String getSplittung (String euro) {
try {
String Ausgabe = ("");
double Eingabe = Double.parseDouble(euro) * 1000;
for (int i = 0; i < 15; i++){
String geldname = ( "[Euro] ");
double Betrag [] = {500, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01};
Betrag [i] = Betrag [i] * 1000;
if (Eingabe >= Betrag [i]) {
double anzahl = (Eingabe - (Eingabe % Betrag [i])) / Betrag [i];
Eingabe = Eingabe % Betrag [i];
if (Betrag [i] < 100) {
geldname = (" [Cent] ");
Betrag [i] = Betrag [i] * 100;
}
Betrag [i] = Betrag [i] / 1000;
Ausgabe = Ausgabe + ( "\n" + "\t" + anzahl + " mal " + Betrag[i] + geldname);
}
}
Eingabe = Double.parseDouble(euro);
return (Eingabe + " Euro entsprechen:" + Ausgabe);
} catch (NumberFormatException e){
return "Eingabe fehlerhaft.";
}
} // getDM
} // ConvertEuro