As I can see, the accuracy argument in all functions ends up being used like this:
return Math.round(distance / accuracy) * accuracy;
It makes no sense to me, because this rounding is not necessary and it can be done outside the library. I thought the accuracy affects the execution time so user has to choose a compromise, but that's false.
The "problem" is it's hard to get the original distance value. This can be done by using accuracy equal Math.pow(2, -52). This is ridiculous.
One solution I see is removing the accuracy argument, but this is a breaking change. Another solution is allowing a new accuracy value like null or 0 that disables the rounding.
As I can see, the
accuracyargument in all functions ends up being used like this:It makes no sense to me, because this rounding is not necessary and it can be done outside the library. I thought the accuracy affects the execution time so user has to choose a compromise, but that's false.
The "problem" is it's hard to get the original
distancevalue. This can be done by usingaccuracyequalMath.pow(2, -52). This is ridiculous.One solution I see is removing the
accuracyargument, but this is a breaking change. Another solution is allowing a newaccuracyvalue likenullor0that disables the rounding.