2012-01-12 6 views
0

私はデータベースにいくつかの数値を格納しています。Rails:コントローラ内のデータベースの整数を計算する

>> t = Total.first 
=> #<Total id: 1, profit: 1058, number: 17, fees: 204, created_at: "2012-01-12 06:44:30", updated_at: "2012-01-12 06:51:13"> 

整数の1つ(頻繁に更新される整数)で除算を行い、新たに更新された整数で除算したいと考えています。私は基本的にはちょうど私がそれを見る

<%= @x %> 

def index 
    @t = Total.first 
    @x = @t.profit/26000 
end 

次のようなものと同じくらい簡単だろう期待していたが、それはありません利益は26,000

>> t.profit 
=> 1058 
>> t.profit/26000 
=> 0 
>> t.profit.to_i/26000 
=> 0 

である何パーセントかを知りたいですコンソールが示唆したように、動作しません。何かヒント?

答えて

2

これは整数除算であるため、結果は丸められます。オペランドの1つを浮動小数点に変換します。小数点以下2桁ことを丸める

t.profit/26000.to_f 

はこのようなものを使用します。

"%.2f" % (t.profit/26000.to_f) 
+0

ありがとうございました。人間が読める数にすることはできますか?すなわち0.040692307692307694の代わりに4%が必要です – Leahcim

+0

@Michael:確かに、答えを –

+0

に更新しましたが、それは私に0.04を与えます。私は4%が欲しい。 – Leahcim

4

セルジオの方法に代わるビルトインnumber_to_percentageビューヘルパーのRailsを使用することです。お使いのコントローラで

:あなたのビューで

def index 
    @t = Total.first 
    @x = @t.profit/260.0 # = 26000/100 
end 

<%= number_to_percentage @x, :precision => 0 %> 

または、あなたが何かのために@tを使用していない場合は、データベースが数学をやらせる:

def index 
    @t = Total.select('profit/260 AS profit').first 
end 

次に...

<%= number_to_percentage @t.profit, :precision => 0 %> 
+0

ありがとうございました。私はnumber_to_percentageを見て、このnumber_to_percentage(x)を試してみましたが、うまくいきませんでした。私はあなたのショットを与えるでしょう。 – Leahcim

+0

あなたの元の解決策は、4%と言わなければならないとき、ビューで0%を与えています – Leahcim

+0

'@ x'の値は何ですか? –

関連する問題