class ActiveSupport::NumberHelper::RoundingHelper
def round_significant(number)
def round_significant(number) return 0 if number.zero? digits = digit_count(number) multiplier = 10**(digits - precision) (number / BigDecimal(multiplier.to_f.to_s)).round * multiplier end