Closed stebo closed 7 months ago
because we are dealing with subunits and not a decimal, the formatter does not support this. Instead, you would have to consider converting from a Money object to something like a BigDecimal so you can truncate the format. I believe you are experiencing this because you are really working with fractional amounts versus subunits. It is a nuanced challenge. You can look at JPY and see how the function as they do not use subunits.
I think this is relevant for everyone working with subunits, that have a large subunit_to_unit
ratio.
BTC already has its subunit Satoshis = 100000000
, ETH is even more with its subunit WEI = 1000000000000000000
.
Given that, having a look at BTC
Money.new(123456789, :btc).format
=> "₿1.23456789"
Would it not be interesting for the formatter to allow, shortening that by some decimals, to e.g. ₿1.2346
? Does not mean that the actual subunit is lost, it is only about the format...
If the community finds value in such a pull request, we would accept it. I have just never experienced a traditional currency that would write $2.99 as $2.9 or even $2.90 as $2.9
Given any currency where
subunit_to_unit
is > 100, how can I limit the number of shown decimals via.format
?Example:
Now
Money.from_cents(12345, "ABC").format
gives"1.2345 ABC"
Any way how I could just get
"1.23 ABC"
?