2012-04-27 28 views
3

時間を秒単位で変換する次の方法があります。たとえば、2時間半の場合は2.30、2時間15分の場合は2.15となります。したがって、時間数と分数が出力されます。秒を分数時間に変換します(30分ではなく、50分の0.5時間です)

上記の代わりに2.5または2.25を表示する方法を変更したいと思います。私は計算をするためにそれを行う必要があります。たとえば、給与が30ドル/時間で、従業員が10時間半働いた場合は、ではなく、30*10.5を掛ける必要があります。

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

ジョンは正しくあります。ただ、浮動小数点除算を使用します。表示する場合

def hour_quantity 
    duration/3600.0 
end 

、あなたは四捨五入する場合があります

puts '%.2f' % hour_quantity 

これは、「、(いつも、あなたに2.50を例えば "2.00"、 "2.25" を小数点以下2桁を与えます")。代わりに:

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

または期間/ 3600.0'。 ;) –

+0

@ヨルダン:Hehe、非常にtrue :) –

+0

ああ!本当にありがとう!コーディングの日の後、脳は正常に機能しなくなります:P – leonel

関連する問題