Rails - 十进制不在视图中显示

时间:2014-10-06 16:51:59

标签: ruby-on-rails ruby-on-rails-4

我有以下对象 -

Reckoner Load (0.2ms)  SELECT  "reckoners".* FROM "reckoners" WHERE
  "reckoners"."id" = ? LIMIT 1  [["id", 2]]
=> #<Reckoner id: 2, group: "test FTEProrated", description: "try new calc", 
     leave: 28, abscence: #<BigDecimal:7fab221cf438,'0.1E2',9(27)>,
     created_at: "2014-10-06 15:56:10", updated_at: "2014-10-06 16:14:32",
     FTEProRated: #<BigDecimal:7fab221ca1e0,'0.0',9(27)>>

如果我已正确完成计算,FTEProRated应该大约为0.8 - 但它显示为0.0。我哪里错了?

在保存对象之前,在控制器中执行计算 -

更新 -

pro_rate_this @reckoner

...

def pro_rate_this(reckoner)
  reckoner.FTEProRated = (260-reckoner.leave)/260
end

当我更改calc以测试正在保存的内容时,一切似乎都没问题 - 例如,这个 -

def pro_rate_this(reckoner)
  reckoner.FTEProRated = (260-reckoner.leave)
end
当reckoner.leave == 28时,

给出的值为232.只有当值变为&lt; 1这似乎是一个问题,尽管这可能是巧合。

1 个答案:

答案 0 :(得分:-1)

数学...如果你想让你的答案成为浮点数,请确保你用浮点数除法。

def pro_rate_this(reckoner)
  reckoner.FTEProRated = (260-reckoner.leave)/260.0
end

看到那里的分母?只需将.0添加到260并报告回来。