我想用紅寶石圓BigDecimal
。我知道我可以使用的功能全面,但紅寶石大固定數的十進制舍入
輪函數給出
(3.2).round(2) => 3.2
我想
(3.2).round(2) => 3.20
(3.20).round(2) => 3.20
(3).round(2) => 3.00
(3.578).round(2) => 3.58
我總是希望有2位小數,3.20不是3.2
任何想法如何做到這一點?
我想用紅寶石圓BigDecimal
。我知道我可以使用的功能全面,但紅寶石大固定數的十進制舍入
輪函數給出
(3.2).round(2) => 3.2
我想
(3.2).round(2) => 3.20
(3.20).round(2) => 3.20
(3).round(2) => 3.00
(3.578).round(2) => 3.58
我總是希望有2位小數,3.20不是3.2
任何想法如何做到這一點?
試試這個:
'%.2f' % 3.2
=> "3.20"
'%.2f' % 3
=> "3.00"
'%.2f' % 3.578
=> "3.58"
etc.
不同,例如,Java's BigDecimal,Ruby's BigDecimal沒有每個實例的精度。 Ruby BigDecimal中3.2和3.20之間的區別僅僅是格式化。
斑點我不知道任何Java所以我可能會誤解。但在某些情況下,爲Ruby指定一個BigDecimal實例的精度是必須的:'require'bigdecimal'; BigDecimal.new(1/3.0)'錯誤:無法爲Rational刪除精度。 – steenslag
確實如此,但有效位數僅用於獲取初始值。它沒有被「鎖定」到那個實例。 '要求'bigdecimal'; dec = BigDecimal.new(2.345,2); dec.precs#=> [18,36]和'dec.to_s('F')#=>「2.3」 –
謝謝..多數民衆贊成在 – Abid