Added fixed precision to avoid JS rounding issues