ich bin ziemlicher Anfänger was das Programmieren betrifft, meistens bastle ich mir aus Codeschnippsel das zusammen was ich brauche, soweit bekomme ich das hin.
Ich habe ein Problem, und komme nicht weiter.
Bei dieser Berechnung:
float Wasserstand = ((( Impulse2 * Impulse2 * Impulse2 ) / (( Wasser_MIN - Wasser_MAX ) *( Wasser_MIN - Wasser_MAX ) ) ) *100) / ( Wasser_MIN - Wasser_MAX ) ;
kommt nich das raus, was rauskommen sollte, ich vermute, das eben die Variable zu klein ist, da Impule2 im schlechtesten Fall 12000 ist.
Wie macht man dass, ich habe leider keine Ahnung. Wäre toll, wenn mir hier jemand auf die Sprünge helfen kann.
Deine Frage ist zu allgemein, als dass man sie ohne weitere Informationen beantworten könnte. So ist nicht klar, welchen Typ die Variablen oder Konstanten haben.
Hilfe zur Selbsthilfe: Laß Dir die Zwischenergebnisse ausgeben, dann siehst Du, wo ein Überlauf passiert.
Danke für eure Antworten. Ich hatte in der Zwischenzeit rumprobiert und weiter google bemüht.
Mein Fehler war, dass ich noch nicht wusste, dass egal wie groß der Variablen Typ ist, trotzdem ein Überlauf erzeugt wird, wenn eine andere Variable mit einem kleineren Variablen Typen verwendet in der Rechnung benutzt wird.
Das Aufteilen in mehrere einzelne Berechnungen hat mir auch bei der Lösungsfindung geholfen.
Stivmaster:
Mein Fehler war, dass ich noch nicht wusste, dass egal wie groß der Variablen Typ ist, trotzdem ein Überlauf erzeugt wird, wenn eine andere Variable mit einem kleineren Variablen Typen verwendet in der Rechnung benutzt wird.
Der Typ der Ziel-Variablen ist egal. Der Typ der Variablen die verrechnet werden ist relevant.
Wenn du z.B. long * int machst wird in long gerechnet. Das kann man ausnutzen und z.B. bei int * int eine der Variablen auf long casten um das zu erzwingen