使用Ruby / Sinatra将字符串格式化为货币

时间:2016-02-22 18:52:39

标签: ruby sinatra string-formatting currency

我在Ruby / Sinatra中有一个应用程序,它使用API​​来返回我需要格式化为货币的字符串,但是没有看到任何简单的方法来执行此操作。

具体来说,我喜欢字符串665778打印为$ 665,778

我尝试过实施Sinatra :: Numeric :: Helpers但是没有用,我怀疑它已经过时了。请指教。在Rails中似乎很容易做但在Sinatra中却没有。

2 个答案:

答案 0 :(得分:2)

  

我想要一个字符串665778打印出$ 665,778

this answer借用千位分组代码可以得到一个简洁的解决方案:

def number_to_currency(num)
  "$#{num.to_s.gsub(/\d(?=(...)+$)/, '\0,')}"
end

答案 1 :(得分:0)

试试这个函数......它在Rails中与number_to_currency相同:

def to_cash(unit = "R$",separator = ",",delimiter = ".")
    mystring = sprintf("%s %.2f",unit, self)
    mystring = mystring.gsub(".",separator)
    pos = mystring.match(separator).begin(0) - 3
    while !(/[0-9]/.match(mystring[pos])== nil) do
        mystring.insert(pos,delimiter)
        pos-=3
    end 
    return mystring
end