Проверьте, является ли строка числом в Ruby on Rails - PullRequest
95 голосов
/ 14 апреля 2011

В моем контроллере приложения есть следующее:

def is_number?(object)
  true if Float(object) rescue false
end

и следующее условие в моем контроллере:

if mystring.is_number?

end

Условие выдает ошибку undefined method. Я предполагаю, что определил is_number не в том месте ...?

Ответы [ 12 ]

0 голосов
/ 22 декабря 2014

используйте следующую функцию:

def is_numeric? val
    return val.try(:to_f).try(:to_s) == val
end

т. Е.

is_numeric? "1.2f" = false

is_numeric? "1.2" = true

is_numeric? "12f"= ложь

is_numeric? "12" = правда

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

Насколько глупо это решение?

def is_number?(i)
  begin
    i+0 == i
  rescue TypeError
    false
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...