提交 d3f178bb 编写于 作者: P Prathamesh Sonpatki

Change number_to_currency behavior for checking negativity

- Instead of using `to_f.phase`, just use `to_f.negative`?.
- This change works same for all cases except when number is "-0.0".
      -0.0.to_f.negative? => false
      -0.0.to_f.phase? => pi
- So -0.0 will be treated as positive from now onwards.
- So this change reverts changes from https://github.com/rails/rails/pull/6512.
- But it should be acceptable as we could not find any currency which
  supports negative zeros.
上级 c942298f
* Change number_to_currency behavior for checking negativity.
Used `to_f.negative` instead of using `to_f.phase` for checking negativity
of a number in number_to_currency helper.
This change works same for all cases except when number is "-0.0".
-0.0.to_f.negative? => false
-0.0.to_f.phase? => 3.14
This change reverts changes from https://github.com/rails/rails/pull/6512.
But it should be acceptable as we could not find any currency which
supports negative zeros.
*Prathamesh Sonpatki*, *Rafael Mendonça França*
* Match `HashWithIndifferentAccess#default`'s behaviour with `Hash#default`.
*David Cornu*
......
......@@ -7,7 +7,7 @@ def convert
number = self.number.to_s.strip
format = options[:format]
if is_negative?(number)
if number.to_f.negative?
format = options[:negative_format]
number = absolute_value(number)
end
......@@ -18,10 +18,6 @@ def convert
private
def is_negative?(number)
number.to_f.phase != 0
end
def absolute_value(number)
number.respond_to?(:abs) ? number.abs : number.sub(/\A-/, '')
end
......
......@@ -74,7 +74,6 @@ def test_number_to_currency
assert_equal("1,234,567,890.50 Kč", number_helper.number_to_currency("1234567890.50", {:unit => "Kč", :format => "%n %u"}))
assert_equal("1,234,567,890.50 - Kč", number_helper.number_to_currency("-1234567890.50", {:unit => "Kč", :format => "%n %u", :negative_format => "%n - %u"}))
assert_equal("0.00", number_helper.number_to_currency(+0.0, {:unit => "", :negative_format => "(%n)"}))
assert_equal("(0.00)", number_helper.number_to_currency(-0.0, {:unit => "", :negative_format => "(%n)"}))
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册