我有以下对象 -
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这似乎是一个问题,尽管这可能是巧合。
答案 0 :(得分:-1)
数学...如果你想让你的答案成为浮点数,请确保你用浮点数除法。
def pro_rate_this(reckoner)
reckoner.FTEProRated = (260-reckoner.leave)/260.0
end
看到那里的分母?只需将.0
添加到260
并报告回来。