2013-03-29 5 views
2

저는 여기 새로운 사용자이자 Ruby 초심자입니다. 음수 값 (숫자)을 is_numeric?에서 제거해야합니다. 따라서 코드는 다음과 같습니다.is_numeric 루비에서 음수를 제거합니다.

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

양수 만 입력해야하는 반면, 양수는 음수가됩니다. 이 방법에서 음수를 제거하는 방법이 있습니까? 그렇지 않으면 다른 방법으로도 감사하겠습니다. 이 같은

답변

5
class String 
    def is_number? 
    Float(self) >= 0 rescue false 
    end 
end 
+0

을 당신은'선'플로트 (자기)를 쓴 이유는 무엇입니까? 이 라인의 필요성은 무엇입니까? –

+0

@iAmRubuuu :'Float' 함수는 문자열을 숫자로 변환 할 수없는 경우 오류를 발생시킵니다. –

+0

@SergioTulentsev 제 선생님 께 감사드립니다. :) –

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