Get a percentile of all floats in the map. Since the sorting is
        done in-place, the map is no longer safe to use after calling this
        or median()

def percentile(self, percentile):
        """Get a percentile of all floats in the map. Since the sorting is
        done in-place, the map is no longer safe to use after calling this
        or median()"""
        percentile = float(percentile)
        if percentile != percentile or percentile < 0 or percentile > 100:
            raise ValueError('Expected a 0 <= percentile <= 100')
        result = c_float()
        if not Gauged.map_percentile(self.ptr, percentile, byref(result)):
            raise MemoryError
        return result.value