Как преобразовать JSON / строковые атрибуты в десятичное число с точностью и масштабом в ruby - PullRequest
0 голосов
/ 02 апреля 2019

Нужна помощь в преобразовании атрибута json / string в десятичное с точностью и масштабом (10,8) соответственно с использованием таблицы решений ruby.

Пример:

Input value:
Price : “000000045790000000”

Необходимо преобразовать вышеприведенное в

0000000457.90000000 

Любые предложения будут действительно полезны. Заранее спасибо.

1 Ответ

1 голос
/ 02 апреля 2019

Преобразование: отрегулируйте вход, чтобы иметь необходимое количество нулей и поместите точку в желаемое положение:

convert = ->(num, prec, scale) {
  num.rjust(prec + scale, '0').tap { |s| s[-scale...-scale] = '.' }
}

быстрый тест:

%w[0045790000000 000000045790000000].all? do |input|
  '0000000457.90000000' == convert.(input, 10, 8)
end
#⇒ true

Хотите ли вы вывести из нее поплавок:

convert.('000000045790000000', 10, 8).to_f # or #to_d
#⇒ 457.9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...