我有一個BigDecimal有0,1或2個十進制數字(我正在調用round(2)就可以了)。我想在視圖中顯示它,以便只顯示所需的十進制數字。換句話說:如何格式化BigDecimal以只顯示所需的十進制數字?
7.0 -> "7"
7.5 -> "7.5"
7.67 -> "7.67"
我該如何做到這一點?到目前爲止,它顯示「7.0」而不是「7」。
我有一個BigDecimal有0,1或2個十進制數字(我正在調用round(2)就可以了)。我想在視圖中顯示它,以便只顯示所需的十進制數字。換句話說:如何格式化BigDecimal以只顯示所需的十進制數字?
7.0 -> "7"
7.5 -> "7.5"
7.67 -> "7.67"
我該如何做到這一點?到目前爲止,它顯示「7.0」而不是「7」。
對於您的觀點,看看從NumberHelper的方法,特別是number_with_precision
,http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_with_precision
特別是你想要的strip_insignificant_zeros選項。
你不需要Ruby on Rails的,當你有sprintf
令人討厭的魔力:
[7.0, 7.5, 7.57].map{ |f| "%g" % BigDecimal.new(f,3) }
#=> ["7", "7.5", "7.57"]
這違背了'BigDecimal'的目的,因爲'sprintf'中的''%g''會將其轉換爲浮點數,從而失去精度。 –
謝謝!!!!!!! –