如何根据Rails中的印度编号系统分隔数字?

时间:2016-05-27 08:16:54

标签: javascript ruby-on-rails ruby pdfkit number-with-delimiter

我使用number_with_delimiter方法为Ruby on Rails中的发票中的数字添加逗号。但数字格式导致23,324,455而不是2,33,24,455Indian Rupees format

<%= number_with_precision(@number, :precision => 2, :delimiter => ',') %>

我必须使用卢比的金额生成发票,因此格式应为xx,xx,xxx.00。在Rails中有可能吗?怎么做到了?

这可以通过JavaScript完成,但问题是,我使用PDFKit gem生成了PDF格式的发票,而不使用JavaScript。我在加载文档时使用了所需的js代码。

$(document).ready(function(){
  $('.totalvalue').each(function(){
    value = $('.totalvalue').text();
    $('.totalvalue').html(
      (value+"").split("").reverse().join("").replace(/(\d{3})(?=\d)/g,        '$1,').split("").reverse().join("")
    )
  })
})

2 个答案:

答案 0 :(得分:4)

您可以使用money gem,并专门探索其formatting options

Money.new(10000000, "INR").format(:symbol => false, 
                                  :south_asian_number_formatting => true)    
#=> "1,00,000.00"

答案 1 :(得分:2)

不优雅,但有效:

("%.2f" % 23324455).reverse.gsub(/(?<=.{6})(\d\d?)/, ',\1').reverse
# => "2,33,24,455.00"