我在Ruby / Sinatra中有一个应用程序,它使用API来返回我需要格式化为货币的字符串,但是没有看到任何简单的方法来执行此操作。
具体来说,我喜欢字符串665778打印为$ 665,778
我尝试过实施Sinatra :: Numeric :: Helpers但是没有用,我怀疑它已经过时了。请指教。在Rails中似乎很容易做但在Sinatra中却没有。
答案 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