Fix handling of negative zero in number_to_currency
This commit is contained in:
parent
135f620535
commit
371508c240
@ -111,7 +111,7 @@ def number_to_currency(number, options = {})
|
||||
unit = options.delete(:unit)
|
||||
format = options.delete(:format)
|
||||
|
||||
if number.to_f < 0
|
||||
if number.to_f.phase != 0
|
||||
format = options.delete(:negative_format)
|
||||
number = number.respond_to?("abs") ? number.abs : number.sub(/^-/, '')
|
||||
end
|
||||
|
@ -64,6 +64,8 @@ def test_number_to_currency
|
||||
assert_equal("$1,234,567,890.50", number_helper.number_to_currency("1234567890.50"))
|
||||
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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user