ここに、ユーザー登録数の推移が配列であります。[12,45,112,345,343,340]
これをグラフに表示する際に、配列の最大値より少し大きくてキリの良い数を出力したい。
そんな要望があったときの実装例です。
def user_count_upper_bound(array = [0]) upper_limit = array.sort.last return 0 if upper_limit <= 0 num = upper_limit * 1.1 digit = 10 ** Math.log10(num).to_i rank = num / digit 19.times do |i| if 0.5 * (i + 2) > rank return (0.5 * (i + 2) * (10 ** Math.log10(num).to_i)).round(0) end end end
- 実行例
最大値/上記メソッドの返り値 125/150 780/900 1250/1500 7600/8500 10000/15000 45000/50000 670000/750000