Hallo,
ich habe ein Problem, und zwar habe ich ein Programm geschrieben, was ein bißchen mit double-Werten rumhantiert. Leider treten dabei Ungenauigkeiten auf, und ich kann die Stelle nicht eindeutig spezifizieren, an der das geschieht. Theoretisch kann eine unegenuigkeit ja auftreten, sobald man multipliziert oder dividiert, und dass tuhe ich recht häufig.
Das Resultat ist, dass ich an einer Stelle im Programm einen Vergleich mache, und dort abundzu "ungleich" herrauskommt, obwohl eigentlich gleich herauskommen sollte. Ich habe mir geholfen, in dem ich einen Toleranzwert eingeführt habe, der eben besagt, wie weit zwei double-Werte auseinanderseien dürfen, damit sie trotzdem noch als gleich betrachtet werden. Leider finde ich das Recht unsauerb, denn ich mußte mittlerweile den Toleranzwert von 1*10^-10 schon auf 1*10^-5 hochschrauben.
Gäbe es eine ellegantere Lösung für mein Problem?
BigDecimal hilft ja nicht wirklich weiter? Laufzeit ist zudem bei meinem Programm auch ein gewisses Problem.
Danke
ich habe ein Problem, und zwar habe ich ein Programm geschrieben, was ein bißchen mit double-Werten rumhantiert. Leider treten dabei Ungenauigkeiten auf, und ich kann die Stelle nicht eindeutig spezifizieren, an der das geschieht. Theoretisch kann eine unegenuigkeit ja auftreten, sobald man multipliziert oder dividiert, und dass tuhe ich recht häufig.
Das Resultat ist, dass ich an einer Stelle im Programm einen Vergleich mache, und dort abundzu "ungleich" herrauskommt, obwohl eigentlich gleich herauskommen sollte. Ich habe mir geholfen, in dem ich einen Toleranzwert eingeführt habe, der eben besagt, wie weit zwei double-Werte auseinanderseien dürfen, damit sie trotzdem noch als gleich betrachtet werden. Leider finde ich das Recht unsauerb, denn ich mußte mittlerweile den Toleranzwert von 1*10^-10 schon auf 1*10^-5 hochschrauben.
Gäbe es eine ellegantere Lösung für mein Problem?
BigDecimal hilft ja nicht wirklich weiter? Laufzeit ist zudem bei meinem Programm auch ein gewisses Problem.
Danke