Class: Pulo::NumberToRoundedConverter

Inherits:
Object
  • Object
show all
Defined in:
lib/pulo/formatting.rb

Class Method Summary collapse

Class Method Details

.convert(number, precision) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/pulo/formatting.rb', line 53

def self.convert(number, precision)

  precision ||= Pulo.precision

  if Pulo.significant_figures && precision > 0
    digits, rounded_number = digits_and_rounded_number(number, precision)
    precision -= digits
    precision = 0 if precision < 0 # don't let it be negative

  else
    rounded_number = number.round(precision)
    rounded_number = rounded_number.to_i if precision == 0
    rounded_number = rounded_number.abs if rounded_number.zero? # prevent showing negative zeros

  end
  formatted_string = "%00.#{precision}f" % rounded_number

  delimited_number = NumberToDelimitedConverter.convert(formatted_string)
  format_number(delimited_number)
end