2012-04-27 54 views
3

我有以下方法可將持續時間以秒爲單位轉換爲小時。例如,2小時半會導致2.30,而2小時15分鐘則導致2.15。所以它輸出小時數和分鐘數。將秒轉換爲小數小時(半小時爲.50而不是30)

我想修改方法來顯示2.5或2.25,而不是上述。我需要這樣做來進行計算。例如,如果工資爲30美元/小時,員工工作了10個半小時,則需要乘以30*10.5而不是30*10.30

def hour_quantity 
    unless self.duration.blank? 
    hours = (self.duration/60)/60 
    minutes = (self.duration/60) % 60 
    hours.to_s + '.' + minutes.to_s 
    end 
end 

回答

4

Jon照常是正確的。只需使用浮點除法:

def hour_quantity 
    duration/3600.0 
end 

顯示時,您可能想圓:

puts '%.2f' % hour_quantity 

這會給你2位小數,總是(如 「2.00」, 「2.25」,「2.50 「)。或者:

puts '%g' % hour_quantity 
    puts '%g' % 2.0   #=> "2" 
    puts '%g' % 2.25   #=> "2.25" 
    puts '%g' % 2.4999999  #=> "2.5" 
+1

或'duration/3600.0'。 ;) – 2012-04-27 22:12:15

+0

@Jordan:呵呵,非常真實:) – 2012-04-27 22:12:34

+0

啊!非常感謝!經過一天的編碼,大腦停止正常工作:P – leonel 2012-04-27 22:14:28

相關問題