Как преобразовать 4 символьную строку "1995" в десятичную 1,9? - PullRequest
0 голосов
/ 21 сентября 2010

Я показываю большое количество записей о транспортных средствах (120k +), каждая запись имеет размер двигателя для этого транспортного средства. Объем двигателя может быть в одном из двух форматов:

"1.8"
OR
"1995" #cc's

Если размер двигателя сохраняется в виде 4-символьной строки, которую я хочу сократить в представлении, до ближайшей сотой - например, «1995» должен отображаться как «2.0», а «1900» должен отображаться как «1.9» .

Как мне лучше всего это сделать? (невозможно обновить базу данных - это только логика просмотра)

Спасибо!

Ответы [ 3 ]

2 голосов
/ 21 сентября 2010
(size.to_f / 100).round / 10.0
0 голосов
/ 21 сентября 2010

Я не знаю, какие у вас есть другие случаи, но если вы можете разделить два случая простым сравнением, это будет

if size > 1000 # or whatever condition here
  sprintf("%.1f", size.to_f / 1000)
else
  sprintf("%.1f", size)
end
0 голосов
/ 21 сентября 2010

Попробуйте это:

size = (size.length == 4) ? (size.to_f / 100).round / 10.0 : size.to_f
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...