warum rechnet java nicht zsammenhängend?

... komplette Frage anzeigen

4 Antworten

Bei deinen zusammenhängenden Beispiel läuft das in etwa so ab:
x / compledeWidthX  -> 243 / 1024 -> 0  (beide Zahlen sind int, also ist das Zwischenergebnis auch ein int)

 *camWidth; -> 0 * 500 -> 0

Du musst einfach ein int zu einem float casten damit Java das Komma anteil nicht abschneidet. 

float mx = (float)x/ (float)compledeWidthX*camWidth;

Antwort bewerten Vielen Dank für Deine Bewertung

wie adenosi schon sagte. wird an den datentypen liegen. was passiert, wenn du jede variable als float deklarierst?

Antwort bewerten Vielen Dank für Deine Bewertung

Das liegt wahrscheinlich daran dass du Integer und Float mischt.

Antwort bewerten Vielen Dank für Deine Bewertung

1. Integer nur mit Integer, Float nur mit Float

2. Punkt vor Strich gibt es nicht, Klammerrechnung schon also benutz diese

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von SirNik
09.09.2016, 22:09

Punkt 2 ist falsch. Es gibt Punkt-vor-Strich in Java

0
Kommentar von SirNik
09.09.2016, 23:43

nein, wird es nicht. Es gibt eine Prioritätstabelle von Operatoren. ein * (mal) hat eine höhere Priorität von binären Operatoren, als ein + (plus). somit wird bei (z1+z2*z3) zuerst z2 mit z3 multipliziert und anschließend z1 addiert.

0
Kommentar von Gomze
11.09.2016, 00:47

Getestet Java 8 IDE Eclipse. Links nach rechts

0

Was möchtest Du wissen?