diff --git a/VirtualRobot/math/statistics/measures.cpp b/VirtualRobot/math/statistics/measures.cpp
index a69494c82352062fad785e39f38866e27d0ab921..2597ad0e6b0b0e15915ce7b3b23640039268c34a 100644
--- a/VirtualRobot/math/statistics/measures.cpp
+++ b/VirtualRobot/math/statistics/measures.cpp
@@ -73,7 +73,7 @@ float quantile(const std::vector<float>& _values, float p, bool isSorted)
     checkNotEmpty(_values);
     const std::vector<float>& values = isSorted ? _values : sorted(_values);
     
-    float location = p * values.size();
+    float location = p < 1 ? p * values.size() : values.size() - 1;
     
     std::size_t floor = static_cast<std::size_t>(std::floor(location));
     std::size_t ceil = static_cast<std::size_t>(std::ceil(location));