my_number = get_salary_range(user)
現在我的方法可能返回324234.23424222格式編號,如果函數返回一個數字,它是一個浮動
我希望它是:
2342343.23
(保留兩位小數)
但是,我必須針對返回值爲零,或「'等。
我該如何安全地做到這一點?
my_number = get_salary_range(user)
現在我的方法可能返回324234.23424222格式編號,如果函數返回一個數字,它是一個浮動
我希望它是:
2342343.23
(保留兩位小數)
但是,我必須針對返回值爲零,或「'等。
我該如何安全地做到這一點?
當my_number.nil?
爲真時,解決方案取決於您想要的字符串中的內容。強制轉換的東西浮法將是一個合理的起點:
formatted_number = '%.2f' % my_number.to_f
將處理預期數字my_number
值以及nil
,"nonsense"
,和''
(後者3個生產0.00
)。
如果你想更徹底,那麼你可以問你的my_number
如果它理解to_f
:
formatted_number = '%.2f' % (my_number.respond_to?(:to_f) ? my_number.to_f : 0.0)
但你還是留下來決定應該發生什麼,如果my_number
不能理智地轉換爲浮動。
你可以走一步,使「事情未浮子上下的什麼」配置:
def numberify(thing, default = "0.00")
return thing.respond_to?(:to_f) \
? '%.2f' % thing.to_f \
: default
end
而且可配置性就留給讀者自己練習。
我不得不考慮它,但無論是「」還是「0」。 – Blankman 2011-06-02 01:47:15
xx.23或xx.2300000 ...? – Matt 2011-06-02 01:18:16
「1234552.99」是我想要的號碼 – Blankman 2011-06-02 01:23:47