diff options
author | Michael Hoy <mjh@mjhoy.com> | 2016-09-26 17:09:37 -0500 |
---|---|---|
committer | Michael Hoy <mjh@mjhoy.com> | 2017-03-16 16:36:47 -0500 |
commit | 202aadd4f4bc0bdce7e376add98c36098ff5086b (patch) | |
tree | 5b63d5b756ea7d19a0fe4f1aedee1b721619750c /activesupport/lib | |
parent | 8bdc9e8d8793c4ce3eb25f56f0d229166261248e (diff) | |
download | rails-202aadd4f4bc0bdce7e376add98c36098ff5086b.tar.gz rails-202aadd4f4bc0bdce7e376add98c36098ff5086b.tar.bz2 rails-202aadd4f4bc0bdce7e376add98c36098ff5086b.zip |
number_to_human_converter: round before calculating exponent
fixes #25664
Diffstat (limited to 'activesupport/lib')
-rw-r--r-- | activesupport/lib/active_support/number_helper/number_to_human_converter.rb | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/activesupport/lib/active_support/number_helper/number_to_human_converter.rb b/activesupport/lib/active_support/number_helper/number_to_human_converter.rb index 56185ddf4b..040343b5dd 100644 --- a/activesupport/lib/active_support/number_helper/number_to_human_converter.rb +++ b/activesupport/lib/active_support/number_helper/number_to_human_converter.rb @@ -9,6 +9,7 @@ module ActiveSupport self.validate_float = true def convert # :nodoc: + @number = RoundingHelper.new(options).round(number) @number = Float(number) # for backwards compatibility with those that didn't add strip_insignificant_zeros to their locale files @@ -20,10 +21,7 @@ module ActiveSupport exponent = calculate_exponent(units) @number = number / (10**exponent) - until (rounded_number = NumberToRoundedConverter.convert(number, options)) != NumberToRoundedConverter.convert(1000, options) - @number = number / 1000.0 - exponent += 3 - end + rounded_number = NumberToRoundedConverter.convert(number, options) unit = determine_unit(units, exponent) format.gsub("%n".freeze, rounded_number).gsub("%u".freeze, unit).strip end |