Thomas: Basics / Kommafehler

moinse

kann mir bitte einer plausibel erklären warum folgender sachverhalt so ist wie er ist, damit ich mein vertrauen in perl zurückgewinne?

ich hab grad mehrere stunden verbraten weil mir das nicht bewusst war:

  
print "ich werde nicht ausgegeben" if 15 * 4 > 60;  
print "ich werde ausgegeben o_O"   if 1.5 * 0.4 > 0.6;  

wär es jetzt sowas wie 100/9*4.5 gewesen, hätte ich verständnis, aber nicht mit 1.5*0.4

edit: mein Perl rennt mit ActiveState 5.8.8.822

  1. Hi,

    kann mir bitte einer plausibel erklären warum folgender sachverhalt so ist wie er ist, damit ich mein vertrauen in perl zurückgewinne?

    ich hab grad mehrere stunden verbraten weil mir das nicht bewusst war:

    print "ich werde nicht ausgegeben" if 15 * 4 > 60;
    print "ich werde ausgegeben o_O"   if 1.5 * 0.4 > 0.6;

    
    > wär es jetzt sowas wie 100/9\*4.5 gewesen, hätte ich verständnis, aber nicht mit 1.5\*0.4  
      
    Ungenauigkeit von Dezimalbruechen in Binaerdarstellung.  
      
    <http://de.wikipedia.org/wiki/Gleitkommazahl#Gleitkommazahlen_in_der_Digitaltechnik>  
      
    MfG ChrisB
    
    1. Ungenauigkeit von Dezimalbruechen in Binaerdarstellung.

      http://de.wikipedia.org/wiki/Gleitkommazahl#Gleitkommazahlen_in_der_Digitaltechnik

      thx.
      wenn ich mal gross bin, entwerf ich ein datentyp (und alles was dazugehört) der periodische zahlenfolgen erkennt und so solche fehler vermeidet. ^^

      1. Moin,

        wenn ich mal gross bin, entwerf ich ein datentyp (und alles was dazugehört) der periodische zahlenfolgen erkennt und so solche fehler vermeidet. ^^

        Sachte, sachte, gibt mal auf der Kommandozeile ein:

        D:>perl -e "print 1.5*0.4"
        0.6

        Siehst Du dasselbe wie bei mir?

        -v: This is perl, v5.6.1 built for MSWin32-x86-multi-thread

        Viele Grüße,
        Horst

        1. gudn tach!

          Sachte, sachte, gibt mal auf der Kommandozeile ein:

          D:>perl -e "print 1.5*0.4"
          0.6

          duffdae! duffdae! duffdae!

          dann gib mal
            perl -e "print 1.5*0.4-.6"
          ein...

          prost
          seth

        2. Sachte, sachte, gibt mal auf der Kommandozeile ein:
          D:>perl -e "print 1.5*0.4"
          0.6

          c:>perl -e "printf '%.20f', 1.5*0.4"
          0.60000000000000009000

          -> da guckst du, was? ich hab etwa so geguckt: o_O

  2. Hi,

    kann mir bitte einer plausibel erklären warum folgender sachverhalt so ist wie er ist, damit ich mein vertrauen in perl zurückgewinne?

    das Vertrauen, dass Du verloren hast, ist das in Gott: Dieser sadistische Omnipotat hat uns Menschen mit zehn Fingern gegeißelt, anstatt eine sehr viel natürliche und nützlichere Zahl wie 8 oder 16 zu wählen. Benützten wir das Oktal- oder Hexadezimalsystem, wäre die Umrechnung in das Binärsystem kein Problem.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. gudn tach!

      das Vertrauen, dass Du verloren hast, ist das in Gott: Dieser sadistische Omnipotat hat uns Menschen mit zehn Fingern gegeißelt, anstatt eine sehr viel natürliche und nützlichere Zahl wie 8 oder 16 zu wählen.

      vielleicht hat er uns auch einfach fuer intelligenter gehalten...

      prost
      seth

      1. Hi,

        das Vertrauen, dass Du verloren hast, ist das in Gott: [...]
        vielleicht hat er uns auch einfach fuer intelligenter gehalten...

        nun ja, der Allwissende[tm] war ja im Laufe der Menschheitsgeschichte schon öfter überrascht, dass wir Dinge getan haben, die er nicht im voraus gewusst hat. Vielleicht steht ja demnächst wieder der nächste Massenmord an?

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
    2. Hi,

      das Vertrauen, dass Du verloren hast, ist das in Gott: Dieser sadistische Omnipotat hat uns Menschen mit zehn Fingern gegeißelt, anstatt eine sehr viel natürliche und nützlichere Zahl wie 8 oder 16 zu wählen.

      Lass mich ueberlegen, was - ausser einem eventuellen Vorteil beim Rechnen - haetten wir davon?

      Vermutlich nur etwas weniger oder etwas mehr Spass beim W*chsen ...

      MfG ChrisB