AutoIT rechnet falsch

  • Hallo
    habe ein ganz kleines problem
    AutoIT rechnet irgendwie falsch

    [autoit]

    MsgBox(0,937.55+00.01,0+(105)+(100)+(230)+(25)+(20)+(-380)+(450)+(00.02)+(20)+(-10)+(00.02)+(-400)+(480)+(10)+(-10)+(10)+(-400)+(-8)+(-1)+(420)+(-10)+(-1.25)+(-22.02)+(-1)+(50)+(-5.60)+(-2)+(10)+(-5)+(3.12)+(-0.20)+(0.15)+(-6)+(-1)+(-0.50)+(50)+(00.02)+(00.01)+(10)+(-50)+(-3)+(-3)+(-1)+(2.50)+(50)+(3)+(-2)+(10.20)+(-7)+(-10)+(-1.89)+(-0.85)+(-8.99)+(-3.00)+(-1)+(-20)+(-450)+(-1)+(10)+(10)+(295.90)+(-20)+(-20)+(250)+(-1.50)+(-3.62)+(-1.03)+(20)+(10)+(20)+(-1.20)+(-3.50)+(-0.50)+(0.45)+(-0.60)+(12.00)+(-10)+(-2.78)+(7.40)+(12.40)+(5.80)+(3.62)+(1.77)+(-5)+(-3.91)+(-3)+(-1)+(20)+(-0.57)+(10)+(20)+(-0.22)+(-3.00)+(-10)+(-10)+(-1.25)+(5)+(-2.07)+(7)+(10)+(-1.39)+(2)+(-10)+(-20)+(15)+(0.20)+(-1.15)+(0.33)+(40)+(5)+(5)+(-1.60)+(-1.20)+(-3.86)+(-1.29)+(-0.99)+(20)+(1.75)+(2.49)+(10)+(-1.09)+(2.50)+(1.50)+(-4.99)+(-00.01)+(10)+(-4.00)+(50)+(-350)+(-10)+(-50)+(-2)+(5)+(-18)+(-0.65)+(-20)+(-0.44)+(-20)+(-0.78)+(-17.20)+(10)+(-3.59)+(-1.09)+(20)+(-10)+(3.09)+(9)+(50)+(35)+(-1.50)+(-10)+(10)+(-0.44)+(-12)+(-1.69)+(-0.20)+(15)+(5)+(-2.99)+(-0.50)+(360)+(-1.34)+(-4.00)+(0.25)+(-10)+(-1)+(-30)+(-20)+(10)+(-10)+(60)+(-20))

    [/autoit]


    [Blockierte Grafik: http://s.gullipics.com/image/u/g/u/32qnhd-kgrlig-kfh7/Unbenannt.png
    Das richtige Ergebniss ist natürlich 936.46

    Ich weiß auch wo das Problem auftaucht aber nicht wieso :(

    Spoiler anzeigen

    0+(105) = 105
    105+(100) = 205
    205+(230) = 435
    435+(25) = 460
    460+(20) = 480
    480+(-380) = 100
    100+(450) = 550
    550+(00.02) = 550.02
    550.02+(20) = 570.02
    570.02+(-10) = 560.02
    560.02+(00.02) = 560.04
    560.04+(-400) = 160.04
    160.04+(480) = 640.04
    640.04+(10) = 650.04
    650.04+(-10) = 640.04
    640.04+(10) = 650.04
    650.04+(-400) = 250.04
    250.04+(-8) = 242.04
    242.04+(-1) = 241.04
    241.04+(420) = 661.04
    661.04+(-10) = 651.04
    651.04+(-1.25) = 649.79
    649.79+(-22.02) = 627.77
    627.77+(-1) = 626.77
    626.77+(50) = 676.77
    676.77+(-5.60) = 671.17
    671.17+(-2) = 669.17
    669.17+(10) = 679.17
    679.17+(-5) = 674.17
    674.17+(3.12) = 677.29
    677.29+(-0.20) = 677.09
    677.09+(0.15) = 677.24
    677.24+(-6) = 671.24
    671.24+(-1) = 670.24
    670.24+(-0.50) = 669.74
    669.74+(50) = 719.74
    719.74+(00.02) = 719.76
    719.76+(00.01) = 719.77
    719.77+(10) = 729.77
    729.77+(-50) = 679.77
    679.77+(-3) = 676.77
    676.77+(-3) = 673.77
    673.77+(-1) = 672.77
    672.77+(2.50) = 675.27
    675.27+(50) = 725.27
    725.27+(3) = 728.27
    728.27+(-2) = 726.27
    726.27+(10.20) = 736.47
    736.47+(-7) = 729.47
    729.47+(-10) = 719.47
    719.47+(-1.89) = 717.58
    717.58+(-0.85) = 716.73
    716.73+(-8.99) = 707.74
    707.74+(-3.00) = 704.74
    704.74+(-1) = 703.74
    703.74+(-20) = 683.74
    683.74+(-450) = 233.74
    233.74+(-1) = 232.74
    232.74+(10) = 242.74
    242.74+(10) = 252.74
    252.74+(295.90) = 548.64
    548.64+(-20) = 528.64
    528.64+(-20) = 508.64
    508.64+(250) = 758.64
    758.64+(-1.50) = 757.14
    757.14+(-3.62) = 753.52
    753.52+(-1.03) = 752.49
    752.49+(20) = 772.49
    772.49+(10) = 782.49
    782.49+(20) = 802.49
    802.49+(-1.20) = 801.29
    801.29+(-3.50) = 797.79
    797.79+(-0.50) = 797.29
    797.29+(0.45) = 797.74
    797.74+(-0.60) = 797.14
    797.14+(12.00) = 809.14
    809.14+(-10) = 799.14
    799.14+(-2.78) = 796.36
    796.36+(7.40) = 803.76
    803.76+(12.40) = 816.16
    816.16+(5.80) = 821.96
    821.96+(3.62) = 825.58
    825.58+(1.77) = 827.35
    827.35+(-5) = 822.35
    822.35+(-3.91) = 818.44
    818.44+(-3) = 815.44
    815.44+(-1) = 814.44
    814.44+(20) = 834.44
    834.44+(-0.57) = 833.87
    833.87+(10) = 843.87
    843.87+(20) = 863.87
    863.87+(-0.22) = 863.65
    863.65+(-3.00) = 860.65
    860.65+(-10) = 850.65
    850.65+(-10) = 840.65
    840.65+(-1.25) = 839.4
    839.4+(5) = 844.4
    844.4+(-2.07) = 842.33
    842.33+(7) = 849.33
    849.33+(10) = 859.33
    859.33+(-1.39) = 857.94
    857.94+(2) = 859.94
    859.94+(-10) = 849.94
    849.94+(-20) = 829.94
    829.94+(15) = 844.94
    844.94+(0.20) = 845.14
    845.14+(-1.15) = 843.99
    843.99+(0.33) = 844.32
    844.32+(40) = 884.32
    884.32+(5) = 889.32
    889.32+(5) = 894.32
    894.32+(-1.60) = 892.72
    892.72+(-1.20) = 891.52
    891.52+(-3.86) = 887.66
    887.66+(-1.29) = 886.37
    886.37+(-0.99) = 885.38
    885.38+(20) = 905.38
    905.38+(1.75) = 907.13
    907.13+(2.49) = 909.62
    909.62+(10) = 919.62
    919.62+(-1.09) = 918.53
    918.53+(2.50) = 921.03
    921.03+(1.50) = 922.53
    922.53+(-4.99) = 917.54
    917.54+(-00.01) = 917.53
    917.53+(10) = 927.53
    927.53+(-4.00) = 923.53
    923.53+(50) = 973.53
    973.53+(-350) = 623.53
    623.53+(-10) = 613.53
    613.53+(-50) = 563.53
    563.53+(-2) = 561.53
    561.53+(5) = 566.53
    566.53+(-18) = 548.53
    548.53+(-0.65) = 547.88
    547.88+(-20) = 527.88
    527.88+(-0.44) = 527.44
    527.44+(-20) = 507.44
    507.44+(-0.78) = 506.66
    506.66+(-17.20) = 489.46
    489.46+(10) = 499.46
    499.46+(-3.59) = 495.87
    495.87+(-1.09) = 494.78
    494.78+(20) = 514.78
    514.78+(-10) = 504.78
    504.78+(3.09) = 507.87
    507.87+(9) = 516.87
    516.87+(50) = 566.87
    566.87+(35) = 601.87
    601.87+(-1.50) = 600.37
    600.37+(-10) = 590.37
    590.37+(10) = 600.37
    600.37+(-0.44) = 599.93
    599.93+(-12) = 587.93
    587.93+(-1.69) = 586.24
    586.24+(-0.20) = 586.04
    586.04+(15) = 601.04
    601.04+(5) = 606.04
    606.04+(-2.99) = 603.05
    603.05+(-0.50) = 602.55
    602.55+(360) = 962.55
    962.55+(-1.34) = 961.209999999999
    961.209999999999+(-4.00) = 957.209999999999
    957.209999999999+(0.25) = 957.459999999999
    957.459999999999+(-10) = 947.459999999999
    947.459999999999+(-1) = 946.459999999999
    946.459999999999+(-30) = 916.459999999999
    916.459999999999+(-20) = 896.459999999999
    896.459999999999+(10) = 906.459999999999
    906.459999999999+(-10) = 896.459999999999
    896.459999999999+(60) = 956.459999999999
    956.459999999999+(-20) = 936.459999999999
    936.459999999999+(00.01) = 936.469999999999


    Kann jemand helfen?

    3 Mal editiert, zuletzt von blackcho (11. Oktober 2014 um 21:22)

  • Kurze Erklärung des Phänomens: Klick mich!
    Die Antwort von Andy ist auch sehr gut, d.h. wenn du x Stellen Genauigkeit haben willst solltest du nach deiner Berechnung manuell mit Round(n, x) auf genau diese Anzahl Nachkommastellen runden.

  • Moin blackcho.

    Ich würde das folgend lösen, wobei in Deinem Fall beim Titel nicht gerundet werden muss, aber zum Verständnis und über habe ich es mal so für Dich gemacht.

    Lsg. mit "Round":

    Spoiler anzeigen
    [autoit]


    MsgBox(0,round(937.55+00.01,3),round(0+(105)+(100)+(230)+(25)+(20)+(-380)+(450)+(00.02)+(20)+(-10)+(00.02)+(-400)+(480)+(10)+(-10)+(10)+(-400)+(-8)+(-1)+(420)+(-10)+(-1.25)+(-22.02)+(-1)+(50)+(-5.60)+(-2)+(10)+(-5)+(3.12)+(-0.20)+(0.15)+(-6)+(-1)+(-0.50)+(50)+(00.02)+(00.01)+(10)+(-50)+(-3)+(-3)+(-1)+(2.50)+(50)+(3)+(-2)+(10.20)+(-7)+(-10)+(-1.89)+(-0.85)+(-8.99)+(-3.00)+(-1)+(-20)+(-450)+(-1)+(10)+(10)+(295.90)+(-20)+(-20)+(250)+(-1.50)+(-3.62)+(-1.03)+(20)+(10)+(20)+(-1.20)+(-3.50)+(-0.50)+(0.45)+(-0.60)+(12.00)+(-10)+(-2.78)+(7.40)+(12.40)+(5.80)+(3.62)+(1.77)+(-5)+(-3.91)+(-3)+(-1)+(20)+(-0.57)+(10)+(20)+(-0.22)+(-3.00)+(-10)+(-10)+(-1.25)+(5)+(-2.07)+(7)+(10)+(-1.39)+(2)+(-10)+(-20)+(15)+(0.20)+(-1.15)+(0.33)+(40)+(5)+(5)+(-1.60)+(-1.20)+(-3.86)+(-1.29)+(-0.99)+(20)+(1.75)+(2.49)+(10)+(-1.09)+(2.50)+(1.50)+(-4.99)+(-00.01)+(10)+(-4.00)+(50)+(-350)+(-10)+(-50)+(-2)+(5)+(-18)+(-0.65)+(-20)+(-0.44)+(-20)+(-0.78)+(-17.20)+(10)+(-3.59)+(-1.09)+(20)+(-10)+(3.09)+(9)+(50)+(35)+(-1.50)+(-10)+(10)+(-0.44)+(-12)+(-1.69)+(-0.20)+(15)+(5)+(-2.99)+(-0.50)+(360)+(-1.34)+(-4.00)+(0.25)+(-10)+(-1)+(-30)+(-20)+(10)+(-10)+(60)+(-20),3))

    [/autoit]


    Lsg. mit "StringFormat":
    (dieses kann man aber auch noch auf eine Zeile kürzen, aber das lass ich mal für den besseren Durchblick.

    Spoiler anzeigen
    [autoit]


    $ver1 = 0+(105)+(100)+(230)+(25)+(20)+(-380)+(450)+(00.02)+(20)+(-10)+(00.02)+(-400)+(480)+(10)+(-10)+(10)+(-400)+(-8)+(-1)+(420)+(-10)+(-1.25)+(-22.02)+(-1)+(50)+(-5.60)+(-2)+(10)+(-5)+(3.12)+(-0.20)+(0.15)+(-6)+(-1)+(-0.50)+(50)+(00.02)+(00.01)+(10)+(-50)+(-3)+(-3)+(-1)+(2.50)+(50)+(3)+(-2)+(10.20)+(-7)+(-10)+(-1.89)+(-0.85)+(-8.99)+(-3.00)+(-1)+(-20)+(-450)+(-1)+(10)+(10)+(295.90)+(-20)+(-20)+(250)+(-1.50)+(-3.62)+(-1.03)+(20)+(10)+(20)+(-1.20)+(-3.50)+(-0.50)+(0.45)+(-0.60)+(12.00)+(-10)+(-2.78)+(7.40)+(12.40)+(5.80)+(3.62)+(1.77)+(-5)+(-3.91)+(-3)+(-1)+(20)+(-0.57)+(10)+(20)+(-0.22)+(-3.00)+(-10)+(-10)+(-1.25)+(5)+(-2.07)+(7)+(10)+(-1.39)+(2)+(-10)+(-20)+(15)+(0.20)+(-1.15)+(0.33)+(40)+(5)+(5)+(-1.60)+(-1.20)+(-3.86)+(-1.29)+(-0.99)+(20)+(1.75)+(2.49)+(10)+(-1.09)+(2.50)+(1.50)+(-4.99)+(-00.01)+(10)+(-4.00)+(50)+(-350)+(-10)+(-50)+(-2)+(5)+(-18)+(-0.65)+(-20)+(-0.44)+(-20)+(-0.78)+(-17.20)+(10)+(-3.59)+(-1.09)+(20)+(-10)+(3.09)+(9)+(50)+(35)+(-1.50)+(-10)+(10)+(-0.44)+(-12)+(-1.69)+(-0.20)+(15)+(5)+(-2.99)+(-0.50)+(360)+(-1.34)+(-4.00)+(0.25)+(-10)+(-1)+(-30)+(-20)+(10)+(-10)+(60)+(-20)
    $ergebnis = StringFormat(" %.2f", $ver1)
    MsgBox(0,937.55+00.01,$ergebnis)

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (11. Oktober 2014 um 15:35) aus folgendem Grund: noch eine lsg dazu gekommen.

  • Hier dann auch noch die Kurzform des zweiten Beispiel:

    Spoiler anzeigen
    [autoit]


    MsgBox(0,StringFormat("%.2f",937.55+00.01),StringFormat("%.2f", 0+(105)+(100)+(230)+(25)+(20)+(-380)+(450)+(00.02)+(20)+(-10)+(00.02)+(-400)+(480)+(10)+(-10)+(10)+(-400)+(-8)+(-1)+(420)+(-10)+(-1.25)+(-22.02)+(-1)+(50)+(-5.60)+(-2)+(10)+(-5)+(3.12)+(-0.20)+(0.15)+(-6)+(-1)+(-0.50)+(50)+(00.02)+(00.01)+(10)+(-50)+(-3)+(-3)+(-1)+(2.50)+(50)+(3)+(-2)+(10.20)+(-7)+(-10)+(-1.89)+(-0.85)+(-8.99)+(-3.00)+(-1)+(-20)+(-450)+(-1)+(10)+(10)+(295.90)+(-20)+(-20)+(250)+(-1.50)+(-3.62)+(-1.03)+(20)+(10)+(20)+(-1.20)+(-3.50)+(-0.50)+(0.45)+(-0.60)+(12.00)+(-10)+(-2.78)+(7.40)+(12.40)+(5.80)+(3.62)+(1.77)+(-5)+(-3.91)+(-3)+(-1)+(20)+(-0.57)+(10)+(20)+(-0.22)+(-3.00)+(-10)+(-10)+(-1.25)+(5)+(-2.07)+(7)+(10)+(-1.39)+(2)+(-10)+(-20)+(15)+(0.20)+(-1.15)+(0.33)+(40)+(5)+(5)+(-1.60)+(-1.20)+(-3.86)+(-1.29)+(-0.99)+(20)+(1.75)+(2.49)+(10)+(-1.09)+(2.50)+(1.50)+(-4.99)+(-00.01)+(10)+(-4.00)+(50)+(-350)+(-10)+(-50)+(-2)+(5)+(-18)+(-0.65)+(-20)+(-0.44)+(-20)+(-0.78)+(-17.20)+(10)+(-3.59)+(-1.09)+(20)+(-10)+(3.09)+(9)+(50)+(35)+(-1.50)+(-10)+(10)+(-0.44)+(-12)+(-1.69)+(-0.20)+(15)+(5)+(-2.99)+(-0.50)+(360)+(-1.34)+(-4.00)+(0.25)+(-10)+(-1)+(-30)+(-20)+(10)+(-10)+(60)+(-20)))

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl