Rails5: Как отформатировать значения валют из данных API - PullRequest
0 голосов
/ 06 октября 2018

У меня есть приложение 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... ... ^

Ответы [ 3 ]

0 голосов
/ 06 октября 2018

Поэтому я предлагаю вам это решение для вашего запроса:

Это строки в вашем контроллере:

@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.

enter image description here

0 голосов
/ 07 октября 2018

попробуйте

"4,9920.0293"[/[\d+,?\d+]+\.?\d{0,2}/]
 => "4,9920.02"
0 голосов
/ 06 октября 2018

Использовать нельзя, использовать 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 ) %> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...