2014-10-06 61 views
-2

不顯示我有以下對象 -導軌 - 十進制鑑於

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 
當我改變了計算的測試什麼是

這一切似乎沒問題 - 例如,這 -

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

當reckoner.leave == 28時給出232的值。只有當值變爲< 1時,它似乎是一個問題,儘管這可能是巧合。

+0

你是如何顯示它的? – Mandeep 2014-10-06 16:53:54

+0

就像'%= @ reckoner.FTEProRated%>'在視圖中 – RADan 2014-10-06 16:58:01

+0

FTEFroRated是您數據庫中的一列嗎?如果是這樣,什麼是列類型?如果沒有,請向我們顯示計算/分配它的代碼。 – 2014-10-06 17:09:00

回答

-1

數學......如果你想讓你的答案成爲一個浮點數,那麼確保你正在用浮點數除。

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

看到分母在那裏?只需將.0添加到260並報告。