Google weiß alles: Ich erkärs Dir ...

Beitrag lesen

in C habe ich ein Phänomen, welches nach einer Erklärzung schreit. Wer hilft mir mal auf die Sprünge?

Ich erkärs Dir ...

Test A5: (Addition schrittweise):0.000000000000000000000 
Test B: (Addition direkt):0.000031746028980705887 

Das sieht aus wie ein Rundungsfehler. Die Zahlen werden ja binär mit endlichem Platz gespeichert und können also nicht beliebig genau sein. Du rechnest einerseits mit großen Zahlen und andererseits mit sehr kleinen Zahlen, wodurch die Genauigkeit, die float kann, auch vollständig ausnutzt.

Offenbar rundet Dein Kompiler bzw. dessen Kompilat bei jeder Zuweisung an eine Variable - was er/es bei der Kettenoperation gerade nicht macht und hat am Ende eine Zahl deren Abweichung zum Runden zu groß ist.

Im Ergebnis hast Du dann die Abweichung (in Test B) vom mathematisch richtigem Ergebnis (nach A5).

Warum ich mich verarscht gefühlt habe: Könnte eine Testfrage nach Kapitel 4 ("Datentypen") in "C-Grundlagen" sein.

Google weiß alles a.k.a. Tagwächter

0 51

Addition != Addition: Warum?

Jonas2
  • programmiertechnik
  1. 0
    1unitedpower
    1. 0
      Jonas2
    2. 1
      Matthias Apsel
      1. 0
        1unitedpower
        1. 0
          Jonas2
          1. 0
            1unitedpower
  2. 0
    Tagwächter
    1. 0

      Netter Versuch der Verarsche.

      Tagwächter
      1. 0
        Jonas2
        1. 0
          Tagwächter
      2. 0

        By the way: Kalender-Test

        Tagwächter
        1. 0
          Jonas2
          1. 0
            Google weiß alles
        2. 0
          1unitedpower
  3. 0

    Ich erkärs Dir ...

    Google weiß alles
    1. 0
      Jonas2
      1. 0
        Google weiß alles
        1. 1
          Rolf b
          1. 0
            Rolf b
            1. 0
              Der-Dennis
          2. 0
            Tagwächter
          3. 0
            1unitedpower
            1. 1
              Rolf b
              1. 0
                1unitedpower
                1. 0
                  Rolf b
    2. 0
      Der-Dennis
      1. 1
        Matthias Apsel
        1. 0
          Google weiß alles
          1. 0
            Der Martin
            • mathematik
            • programmiertechnik
            1. 0
              Google weiß alles
          2. 0
            Gunnar Bittersmann
        2. 0
          Der-Dennis
      2. 0
        Gunnar Bittersmann
        1. 0
          Der-Dennis
          1. 0
            Tabellenkalk
            1. 0
              Der-Dennis
              1. 0
                Tabellenkalk
                1. 0
                  Der-Dennis
                  1. 0
                    Tabellenkalk
                    • begriff
                    1. 0
                      Der-Dennis
          2. 0
            Gunnar Bittersmann
            1. 1
              Matthias Apsel
              1. 0
                Gunnar Bittersmann
                1. 0
                  Der-Dennis
              2. 0
                Der-Dennis
            2. 0
              Tabellenkalk
              • hardware
              1. 0
                Der-Dennis
            3. 2
              Der-Dennis
              1. 0
                Gunnar Bittersmann
                1. 0
                  Der-Dennis