Q. 2 ** 30 を 3 桁ごとにコンマ(',')で分けたいんだけど

A. つ

def comma_format(n, sepataror = ",")
  digits    = n.to_s.split(/\./).shift.split(//).reverse
  i, result = 0, []
  digits.each do |digit|
    result << digit
    if i % 3 == 2 then
      result << sepataror
    end
    i += 1
  end
  result.reverse.join("")
end
ちょっとした説明(?)

n が実数だといけないので、split(/\./).shift で整数部だけを取り出し、
それを 1 文字ずつ分けて(split(//))からひっくり返す(reverse)。
3 文字ずつの隙間にコンマをいれて、終わったらまたひっくり返してくっつける(join(""))。