2

私はここの新しいユーザーであり、Ruby の初心者でもあります。から負の値 (数値) を削除する必要がありますis_numeric?。したがって、コードは次のようになります。

class String
  def is_number?
    true if Float(self) rescue false
  end
end

これにより、正の数と負の数が得られますが、正の数のみを取得する必要があります。この方法で負の数をなくす方法はありますか? そうでない場合は、他の方法も高く評価されます。

4

2 に答える 2

5
class String
  def is_number?
    Float(self) >= 0 rescue false
  end
end
于 2013-03-29T12:29:30.760 に答える
1

このようなものが動作するはずです:

class String
  def is_number?
    f = Float(self) 
    f && f >= 0
  rescue
    false
  end
end

'1'.is_number? # => true
'-1'.is_number? # => false
'0.0'.is_number? # => true
'4.12'.is_number? # => true
'-10_000'.is_number? # => false
于 2013-03-29T12:27:02.003 に答える