Hab ein Überweisungsprogramm mit Java geschrieben.
Und bei folgenden Code hat das Programm kleine Fehler. Nämlich wenn ich etwas überweise, passiert es manchmal, alle 3-6 mal, dass die Zahl viel zu lang ist, wie 1.59999999999997, obwohl das Programm nur 1.7 - 0.1 gerechnet hat.
Er lest eine TXT Datei, wo das Guthaben gespeichert ist.
Dann zieht er den Überweisungsbetrag, was man eingibt, von dem Guthaben ab.
Dann wird das Ergebnis in ein String umgewandelt und in die TXT geschrieben.
File file = new File("file.txt");
Scanner scan = null;
try {
scanner = new Scanner(scan);
} catch (FileNotFoundException e8) {e8.printStackTrace();}
Double scannerDouble = Double.valueOf(scanner.nextLine());
Double ergebnis = scannerDouble - überweisungsbetrag;
String ergebnisString = String.valueOf(ergebnis);
try {
FileWriter filewr = new FileWriter(file);
filewr.write(ergebnisString);
filewr.close();
} catch (Exception e) {e.printStackTrace();}
Und manchmal schreibt er dann halt in die Datei, sowas wie 1.6000000001.
Hab die Vermutung dass der Fehler beim Umwandeln von Double auf String passiert, aber das müsste doch bei jedem Durchlauf passieren