# File lib/standard/facets/math/percentile.rb, line 18 def self.percentile(array, pcnt) sorted_array = array.sort return nil if array.length == 0 rank = (pcnt.to_f / 100) * (array.length + 1) whole = rank.truncate # if has fractional part if whole != rank s0 = sorted_array[whole - 1] s1 = sorted_array[whole] f = (rank - rank.truncate).abs return (f * (s1 - s0)) + s0 else return sorted_array[whole - 1] end end