我有一个Ruby on Rails应用程序,该应用程序已成功从API请求数据,但希望其格式为4,992.02,而不是4,992.0293
<div class="card-body">
<h1 class="card-title pricing-card-title"><i class="fa fa-gbp" aria-hidden="true"></i><%= @bitcoin ["bpi"]["GBP"]["rate"] %></h1>
</div>
所以[Rate]是数字的来源。使用了标准的number_to_currency方法
<%= @bitcoin ["bpi"]["GBP"] number_to_currency(["rate"]) %>
但出现错误
已更新,但有错误 <%= @bitcoin [“ bpi”] [“ GBP”] number_to_currency([“ rate”])%>
/Users/neilpatel/Desktop/2018/rails/bit/app/views/home/index.html.erb:13: syntax error, unexpected tIDENTIFIER, expecting ')' ...bpi"]["GBP"] number_to_currency(["rate"]) );@output_buffer.s... ... ^
答案 0 :(得分:0)
不能使用round
,字符串包含,
逗号。
// helpers/app_helper.rb
module ApplicationHelper
def coin_to_currency(number)
n = number.split(".")
num = n[0]
dec = n[1].slice(0..1)
number_to_currency([num, dec].join("."))
end
end
// view
<%= coin_to_currency( PLACE_COIN_NUMBER_HERE ) %>
答案 1 :(得分:0)
因此,我建议您使用此解决方案:
这行在您的控制器中:
@split_result = '4,992.0293'.split(',')
@result = @split_result[0] + @split_result[1].to_f.round(2).to_s
此行转到您的视图:
<%= number_with_delimiter(@result) %>
这是您输入的'4,992.0293'的结果,它被舍入到小数点后2位,因为0293如果您将其切成2个数字,则校正后的值为03。 / p>
答案 2 :(得分:0)
尝试
"4,9920.0293"[/[\d+,?\d+]+\.?\d{0,2}/]
=> "4,9920.02"