3

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

<%= 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("")
    )
  })
})
4

2 回答 2

5

您可以使用moneygem,并专门探索它的格式化选项

Money.new(10000000, "INR").format(:symbol => false, 
                                  :south_asian_number_formatting => true)    
#=> "1,00,000.00"
于 2016-05-27T09:17:28.140 回答
2

不优雅,但有效:

("%.2f" % 23324455).reverse.gsub(/(?<=.{6})(\d\d?)/, ',\1').reverse
# => "2,33,24,455.00"
于 2016-05-27T08:23:17.520 回答