Hallo,
leider verschweigst du uns den Typ von p1 und p2. Wegen der Formulierung "Punkt" vermute ich, dass es sich jeweils um einen Point handelt; dessen X- und Y-Elemente sind als
int deklariert. Also wird mit '/' eine
Integer-Division ausgeführt; und das bedeutet: Das Ergebnis ist der ganzzahlige Anteil der Division - also bei (-22) / 146 wird es -0. Erst danach kommt bei deinem Verfahren die Konvertierung in double.
Wenn du es anders haben willst, musst du einen der Operanden vorher zu double konvertieren. Beispiel:
C#-Quelltext
1:
| double m = (double)(p2.Y - p1.Y) / (p2.X - p1.X); |
Gruß Jürgen
PS. Bitte vergiss nicht, Code als solchen zu markieren!