Bei Subtraktion von float kommt es zu Fehlern



  • 0.99999999999
    1.0

    ist erst an der x. stelle ungenau aber so gar schon vorm komma zu sehen...





  • unskilled schrieb:

    Keiner kann besser Nix als ich - Tagedieb mit Lächelm im Gesicht

    Tüte Deutsch gefällig?
    🙂



  • die art rechnung die du machst ist die, die man möglichst vermeiden sollte. fließkommazahlen sind nicht dafür gemacht, dass man sie voneinander abzieht. in der Multiplikation sind sie genauer. Wenn das ergebnis die Differenz zweier großer vom wert her sehr ähnlicher fließkommazahlen ist, dann ist der fehler sehr groß. Oft kann man das Problem dadurch beheben, dass man die gleichung umstellt, oder wie du den Datentyp ändert. wobei meißtens erstes vorzuziehen ist.



  • rechtschreib0r schrieb:

    unskilled schrieb:

    Keiner kann besser Nix als ich - Tagedieb mit Lächelm im Gesicht

    Tüte Deutsch gefällig?
    🙂

    Jopp - war natürlich kein Tippfehler sondern ein, meiner Unwissenheit über die deutsche Sprache und deren Grammatik geschuldeter, Fehler...



  • unskilled schrieb:

    Jopp - war natürlich kein Tippfehler sondern ein, meiner Unwissenheit über die deutsche Sprache und deren Grammatik geschuldeter, Fehler...

    Wie kann man sich bei n und m nur vertippen? 🙂
    (Hatten ja mal jemand, der gemeint hat, dass er sich bei w und m, oder so vertippt hat.. :p)



  • unskilled schrieb:

    rechtschreib0r schrieb:

    unskilled schrieb:

    Keiner kann besser Nix als ich - Tagedieb mit Lächelm im Gesicht

    Tüte Deutsch gefällig?
    🙂

    Jopp - war natürlich kein Tippfehler sondern ein, meiner Unwissenheit über die deutsche Sprache und deren Grammatik geschuldeter, Fehler...

    Du schuldest deiner Unwissenheit Fehler? 😮
    😃 Interessant.



  • Gib ihr am besten gleich alle, dann kannst du keine mehr machen 😉 :p



  • Tobiking2 schrieb:

    Schlägt die Ungenauigkeit denn schon bei 4 Stellen nach dem Komma zu? Auf http://www.hs-augsburg.de/~sandman/c_von_a_bis_z/c_007_005.htm#RxxobKap0070050400263A1F01218C steht was von 6 Stellen bei float. Oder ist damit nur gemeint man kann eine Zahl mit maximal 6 Stellen genau darstellen aber für die Operationen gilt es nicht?

    Sind doch eh 7 Stellen 😕
    2 vor dem Komma und 5 dahinter -> in Summe: 7

    Dass das Ergebnis der Subtraktion nichtmehr auf 6 bzw. 7 Stellen genau ist, sollte logisch sein.
    Das Ergebnis kann schliesslich nicht genauer sein als die Operanden.



  • hustbaer schrieb:

    Sind doch eh 7 Stellen 😕
    2 vor dem Komma und 5 dahinter -> in Summe: 7

    Dass das Ergebnis der Subtraktion nichtmehr auf 6 bzw. 7 Stellen genau ist, sollte logisch sein.
    Das Ergebnis kann schliesslich nicht genauer sein als die Operanden.

    Also ich zähle bei 50.7820 und 50.7716 nur 2 Stellen vor und 4 nach dem Komma, also insgesamt 6. Ich habe allerdings gerade mal die Zahlen einem float zugewiesen die Werte werden direkt verfälscht: 50,782001 und 50,771599. Damit ist klar das nicht das genaue Ergebnis rauskommt. Die Frage ist nun, ob die Werte immer stimmen wenn man nach 6 Stellen rundet, oder ob das mit den 6 Stellen einfach nur Unsinn ist.



  • Shuriken2643 schrieb:

    variable a beinhaltet 50.7820
    variable b beinhaltet 50.7716

    wenn ich jetzt a - b rechne kommt das hier raus: 0.0104027
    anstatt einfach 0.0104

    Der Fehler bei 0.0104027 ist in der 6. Kommastelle, d.h. wenn man auf die Ausgangswerte zurückschliesst, dann scheinen die 7 "gute" Stellen zu haben.

    Ich habe allerdings gerade mal die Zahlen einem float zugewiesen die Werte werden direkt verfälscht: 50,782001 und 50,771599.

    Hier haste auch 7 "gute" Stellen wenn ich mich nicht verzählt habe. Wobei allerdings nur 6 "garantiert" werden.

    Die Frage ist nun, ob die Werte immer stimmen wenn man nach 6 Stellen rundet, oder ob das mit den 6 Stellen einfach nur Unsinn ist.

    Nein, natürlich nicht, denn je mehr man rechnet, desto grösser wird der Fehler natürlich. Kommt natürlich auch drauf an wie die Berechnungen und deren Zwischenergebnisse aussehen.


Anmelden zum Antworten