2014-08-27 63 views
0

我創造了一些示例代碼,並且仍然begineer 類Number如何在此上使用簡單的操作符?

def initialize(name) 
    @first = [] 
    @second = [] 
    @final = 0 

end 

def input 
    print "Please input first number" 
    @first = gets.chomp 
    print "Please input second number" 
    @second = gets.chomp 

end 

def output 
    @final = @first * @second 
    puts @final 

end 



end 

number = Number.new('Jakz') 
number.class 
number.input 
number.output 

我要總結的2輸入號碼,但它給予錯誤,因爲2號成爲一個字符串不是number.How解決?

+1

查看['String#to_i'](http://www.ruby-doc.org/core-2.1.2/String.html#method-i-to_i)。當你在那裏時,花點時間來了解String提供的許多其他有用的方法。 – PinnyM 2014-08-27 16:34:05

+0

這與Rails有什麼關係? – 2014-08-28 06:49:51

回答

3

gets返回一個字符串。提示不知道您正在請求一個號碼。調用to_f會盡力將字符串轉換爲一個浮點數

def input 
    print "Please input first number" 
    @first = gets.chomp.to_f 
    print "Please input second number" 
    @second = gets.chomp.to_f 

end 

注意:如果用戶輸入的東西是不是一個數字 - 上面的代碼不驗證它,將最有可能設置的變量到0

+0

當我插入3.3時,它變成了3.當我插入浮點數時,它將變成整數。如何處理它? – 2014-08-27 16:40:34

+2

使用'to_f',而不是'to_i'來浮動 – steenslag 2014-08-27 16:47:42

+0

值得注意的是,與Perl,PHP和JavaScript不同,Ruby不會自動將字符串轉換爲數字。你必須明確地用'to_i'或'to_f'來請求這個。 – tadman 2014-08-27 16:55:46