Class: ActiveSupport::NumberHelper::RoundingHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/activesupport-7.0.4/lib/active_support/number_helper/rounding_helper.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ RoundingHelper

Returns a new instance of RoundingHelper.



8
9
10
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/activesupport-7.0.4/lib/active_support/number_helper/rounding_helper.rb', line 8

def initialize(options)
  @options = options
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



6
7
8
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/activesupport-7.0.4/lib/active_support/number_helper/rounding_helper.rb', line 6

def options
  @options
end

Instance Method Details

#digit_count(number) ⇒ Object



20
21
22
23
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/activesupport-7.0.4/lib/active_support/number_helper/rounding_helper.rb', line 20

def digit_count(number)
  return 1 if number.zero?
  (Math.log10(number.abs) + 1).floor
end

#round(number) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/activesupport-7.0.4/lib/active_support/number_helper/rounding_helper.rb', line 12

def round(number)
  precision = absolute_precision(number)
  return number unless precision

  rounded_number = convert_to_decimal(number).round(precision, options.fetch(:round_mode, :default).to_sym)
  rounded_number.zero? ? rounded_number.abs : rounded_number # prevent showing negative zeros
end