2009-07-15 35 views
1

目前我正在試圖四捨五入浮點數,但我得到這樣一個錯誤信息:浮法16.666667未定義的方法round_to ..和我的四捨五入代碼什麼樣的數據類型可以四捨五入?

option = [keys[count], (((o.poll_votes.count.to_f)/@general_poll.poll_votes.count.to_f)*100).round_to(1)] 

什麼suprises我最深的是,我已經在幾個地方使用了這個代碼,並且工作得很好..但現在給了我錯誤。

在此先感謝。

回答

4

round_to方法在ruby核中任何地方都不存在。這個功能很可能包含在你以前使用過的庫中,但在當前項目中並沒有要求。快速搜索後,它看起來像這個功能包含在Ruby Facets庫中。

gem install facets 

檢查這篇文章給自己添加此功能:http://www.hans-eric.com/code-samples/ruby-floating-point-round-off/

FTA:

一個小猴子修補我們可以添加自定義四捨五入的方法來Float類。

class Float 
    def round_to(x) 
    (self * 10**x).round.to_f/10**x 
    end 

    def ceil_to(x) 
    (self * 10**x).ceil.to_f/10**x 
    end 

    def floor_to(x) 
    (self * 10**x).floor.to_f/10**x 
    end 
end 

------------------剪斷8 < -------------------

+0

我意識到圖書館裏什麼也沒有,請你詳細解釋我可以如何使用這個猴子補丁? 無論如何感謝您的答覆。 – 2009-07-15 14:06:32