Die Berechnung mathematisch vernünftig zu machen [1], passt deinem "Programmierergewissen" als nicht?
Das hab ich so nicht gemeint:
Wieso das Rad neu erfinden, wenn alles vorgegeben ist... okay, in diesem Falle zu sein scheint!?
Man wir es aber wohl so machen müssen, weil die Javascript-Vorgabe es nicht so macht wie es eigentlich sein sollte (zumindest für dieses Beispiel).
Als Alternative gäbe es dann wohl nur noch "XMLHttpRequest", wie in einer anderen Antwort vorgeschlagen.