Forum

Forum Index -> Erste Schritte -> Berechnung in der Logik
hronny <p>Berechnung in der Logik</p>
Benutzer
Mitglied seit: 19.01.2016
Nachrichten: 109

Hi

die Berechnungsfunktion in der Logik ist super. Leider habe ich jetzt festgestellt, dass auf Grund einer festen 32bit Berechnung es extrem wichtig ist die Reihenfolge bei der Berechnung zu beachten.

Es macht unter Umständen viel aus, ob man die Gleichung so eingibt:

100*i[1]/80 oder so 100/80*i[1]

Mathematisch gesehen kommt das gleiche Ergebnis herraus. Nur nicht in der Logik. Ich vermute, dass intern der Eisbär keine Gleitkommawerte benutzt und deshalb unterschiedliche Ergebnisse herauskommen. Vielleicht kann man für solch eine genaue Berechnung eine eigene Logikkomponente einwerfen, um nicht an Performance zu verlieren :roll:

Ich wollte es nur mal sagen, falls jemand anderes das gleiche Problem hat.

PS: So ganz nebenbei an die Entwickler: Wie ist das gemeint "Als Operatoren stehen die meisten C#/C++ Operatoren zur Verfügung"? Eigentlich gehen doch nur die Grundrechenarten. Zumindest andere klassische C Funktionen wie Wurzel oder Faktor funktionieren nicht oder ich habe den Befehl vergessen :-D

Viele Grüße
Ronny

20.01.2010 12:23
Alexander <p>Berechnung in der Logik</p>
Moderator
Mitglied seit: 19.01.2016
Nachrichten: 960

Hallo,

die Berechnung ist entweder boolesche Logik oder Integerarithmetik. Daraus resultiert auch der beobachte Rundungsfehler.

Hier stehen folgende Operatoren zur Verfügung:
+, -, *, /, %, &, |, ^, !, ~, &&, ||, true, false, ==, !=, <, >, <=, >=

Hier noch zwei Links zu möglichen C#-Operatoren:

mathematischen Funktionen:
http://msdn.microsoft.com/de-de/library/system.math_members%28VS.95%29.aspx

Operatoren:
http://msdn.microsoft.com/de-de/library/6a71f45d%28VS.80%29.aspx

07.03.2010 14:23
Anmelden