Какой тип данных может быть округлен? - PullRequest
1 голос
/ 15 июля 2009

В настоящее время я пытаюсь округлить число с плавающей точкой, но я получаю сообщение об ошибке, например: undefined метод round_to для числа с плавающей запятой 16.666667 .. и мой код округления равен

  option = [keys[count],    (((o.poll_votes.count.to_f)/@general_poll.poll_votes.count.to_f)*100).round_to(1)]

И что меня больше всего удивляет, так это то, что я использовал этот код в нескольких местах и ​​работает просто отлично ... но сейчас выдаёт мне ошибки.

спасибо заранее.

1 Ответ

4 голосов
/ 15 июля 2009

метод round_to не существует нигде в ядре ruby. Скорее всего, эта функциональность была включена в библиотеку, которую вы использовали ранее, но не требовали ее в своем текущем проекте. После быстрого поиска, похоже, эта функция включена в библиотеку Ruby Facets.

gem install facets 

Проверьте эту статью, чтобы добавить эту функциональность самостоятельно: http://www.hans -eric.com / code-samples / ruby-плавающая точка-округление /

FTA:

С помощью небольшого количества исправлений мы можем добавить пользовательские методы округления в класс Float.

class Float
  def round_to(x)
    (self * 10**x).round.to_f / 10**x
  end

  def ceil_to(x)
    (self * 10**x).ceil.to_f / 10**x
  end

  def floor_to(x)
    (self * 10**x).floor.to_f / 10**x
  end
end

------------------ snip 8 <------------------- </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...