def number_to_percentage(number, options = {})
return nil if number.nil?
options.symbolize_keys!
defaults = I18n.translate('number.format''number.format', :locale => options[:locale], :default => {})
percentage = I18n.translate('number.percentage.format''number.percentage.format', :locale => options[:locale], :default => {})
defaults = defaults.merge(percentage)
options = options.reverse_merge(defaults)
begin
"#{number_with_precision(number, options.merge(:raise => true))}%".html_safe
rescue InvalidNumberError => e
if options[:raise]
raise
else
e.number.to_s.html_safe? ? "#{e.number}%".html_safe : "#{e.number}%"
end
end
end