Habs jetzt so gelöst:
this.roundingpower = 100000; // eine grundkonstante
Und überall, wo ich die speed-koordinate festlege, einfach das hier angehängt:
self.speed.x = Math.round(self.speed.x * self.roundingpower) / self.roundingpower;
self.speed.y = Math.round(self.speed.y * self.roundingpower) / self.roundingpower;
Okay. Es ist nicht die eleganteste Lösung. Aber dafür steht jetzt bei 180 grad winkel auch -10 / 0 da :P Trotzdem werden genug Nachkommastellen zurückgegeben, dass man damit ziemlich genau arbeiten kann. :)