hey,
ich habe eine Verständnisfrage zu der berechnung mit floats :
also : ich habe auf einem Panel ein raster von gezeichneten kästchen.
und wenn ich jetzt auf eins draufklick möchte ich gerne ausrechen, wo es sich befindet (sprich zeile und reihe ).
Das funktioniert auch, mir ist aber nicht klar warum, und ich hoffe es kann mir jemand erklären.
Hier der Code :
So bei der markierten Zeile kommen immer merkwürdige dinge 'raus und ich versthe nicht warum :
Beispiel : posX = 192 ; optimale_breite = 27 ; abstand = 10
so : wenn ich mit dem Taschenrechner ausrechne (192 / (27+10) ) bekomme ich 5,189.. raus
wenn ich an die stelle einen Breakpoint setz und mit F11 den debugger starte und das Ergebnis von fx betrachte steht da "5.0" ! Warum ist fx nicht 5.189 ???
ich verstehe es nicht ..
ich habe eine Verständnisfrage zu der berechnung mit floats :
also : ich habe auf einem Panel ein raster von gezeichneten kästchen.
und wenn ich jetzt auf eins draufklick möchte ich gerne ausrechen, wo es sich befindet (sprich zeile und reihe ).
Das funktioniert auch, mir ist aber nicht klar warum, und ich hoffe es kann mir jemand erklären.
Hier der Code :
Java:
public int[] position(int posX, int posY) {
int x = 0 ;
int y = 0 ;
double fx = (posX/(optimale_breite + abstand)); // hier ist der Fehler (siehe Text unten)
// System.out.println("" + fx + "|" + (posX* 1/(optimale_breite + abstand)));
double fy = (posY/(optimale_hoehe + abstand)); // hier ist der gleiche Fehler ...
x = new Double(fx).intValue();
y = (int) fy ;
int[] result = {x,y};
return result;
}
So bei der markierten Zeile kommen immer merkwürdige dinge 'raus und ich versthe nicht warum :
Beispiel : posX = 192 ; optimale_breite = 27 ; abstand = 10
so : wenn ich mit dem Taschenrechner ausrechne (192 / (27+10) ) bekomme ich 5,189.. raus
wenn ich an die stelle einen Breakpoint setz und mit F11 den debugger starte und das Ergebnis von fx betrachte steht da "5.0" ! Warum ist fx nicht 5.189 ???
ich verstehe es nicht ..