Rails:对控制器中的数据库整数执行数学运算

时间:2012-01-12 07:28:21

标签: ruby-on-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">

我想对其中一个整数(一个经常更新的整数)执行除法,并对新更新的整数进行除法。我基本上只是想知道26,000的利润百分比

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

我希望它会像这样的东西一样容易

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

查看

<%= @x %>

但它不起作用,因为控制台建议它不会。任何提示?

2 个答案:

答案 0 :(得分:4)

Sergio方法的替代方法是使用Rails的内置number_to_percentage视图助手。

在您的控制器中:

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 %>

答案 1 :(得分:2)

这是一个整数除法,因此结果是四舍五入的。将其中一个操作数转换为float。

t.profit / 26000.to_f

要将其舍入为小数点后两位,请使用以下内容:

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