From ed4d745d3cb472afb1fd08175d2ca08ee1dcb5af Mon Sep 17 00:00:00 2001 From: Ben Sharpe Date: Thu, 2 Sep 2010 08:05:23 -0700 Subject: [PATCH] Fix number_to_human(0) exception [#5532 state:resolved] --- .../lib/action_view/helpers/number_helper.rb | 3 ++- actionpack/test/template/number_helper_test.rb | 1 + 2 files changed, 3 insertions(+), 1 deletions(-) diff --git a/actionpack/lib/action_view/helpers/number_helper.rb b/actionpack/lib/action_view/helpers/number_helper.rb index 9dc4727..7b3751d 100644 --- a/actionpack/lib/action_view/helpers/number_helper.rb +++ b/actionpack/lib/action_view/helpers/number_helper.rb @@ -459,7 +459,8 @@ module ActionView raise ArgumentError, ":units must be a Hash or String translation scope." end.keys.map{|e_name| DECIMAL_UNITS.invert[e_name] }.sort_by{|e| -e} - number_exponent = Math.log10(number).floor + number_exponent = 0 + number_exponent = Math.log10(number).floor if number != 0 display_exponent = unit_exponents.find{|e| number_exponent >= e } number /= 10 ** display_exponent diff --git a/actionpack/test/template/number_helper_test.rb b/actionpack/test/template/number_helper_test.rb index d27cec0..2a3bc13 100644 --- a/actionpack/test/template/number_helper_test.rb +++ b/actionpack/test/template/number_helper_test.rb @@ -184,6 +184,7 @@ class NumberHelperTest < ActionView::TestCase end def test_number_to_human + assert_equal '0', number_to_human(0) assert_equal '123', number_to_human(123) assert_equal '1.23 Thousand', number_to_human(1234) assert_equal '12.3 Thousand', number_to_human(12345) -- 1.7.2.1