GNOME Bugzilla – Bug 543061
Fractional not working in IDR (rupiah) currency
Last modified: 2018-06-29 22:07:38 UTC
Please describe the problem: If I enter a transaction with fractional amount, such as 5000/3, the result is still 1,667.00 instead of 1,666.67 In each account, I already edit the smallest fraction into 1/100, and in Edit - Preferences - General, I already enable the Automatic decimal point, Decimal Places 2. Steps to reproduce: 1. Make New Account Hierarchy 2. Set the currency into IDR 3. Set the preferences - General Decimal Places 2 4. Edit all account, the smallest fraction into 1/100 5. Type a transaction, with fractional amount, such as 5000/3 Actual results: It displayed 1,667.00 Expected results: It displaed 1,666.67 Does this happen every time? Yes Other information: I won't happened if I use USD currency.
Confirmed. I can reproduce this as of r17402.
This appears to a variation of bug 408444. I think the "smallest fraction" setting of 1/100 on the account is being ignored in favor of the setting on the currency (which for IDR is 1). It should be the other way around.
Created attachment 116519 [details] [review] introduce indonesian Sen (Fractional of IDR) Salamat Pagi, I can't imagine by the backpack of paper I got against EUR 100, but http://en.wikipedia.org/wiki/ISO_4217 shows 2 decimals and http://de.wikipedia.org/wiki/ISO_4217 says 1 Rupiah = 100 Sen. (And now I need another test currency ;-) )
I think sen was killed by inflation. Due to bug 408444 I think that the "smallest" fraction setting of the account is being ignored, so if we apply this patch then every IDR account will be forced to use 2 decimal places. I wonder if it is better to leave the default as zero decimal places, even though this does not follow ISO 4217. If bug 408444 is fixed then the reporter can just set the particular account's "smallest fraction" to 1/100. But I am not familiar with using IDR; maybe accounts are kept in 2 decimal places even though the sen is dead.
Let's ask the reporter: JJ, why do you want to use 2 decimal places for IDR accounts? Is that normal practice? Do you think it would be good to default all IDR accounts to 2 decimal places?
He has to accumulate many rounding errors until he can pay a coin of Rs 100 (smallest common) or Rs 25 (smallest official, but really rare). Some reference of www.bi.go.id or so would be nice. Or JJ and who else like, can apply the patch private.
Yes, I agree. And No I don't agree. In normal / daily life, the Indonesia's government does not provide 1/100 fractional real money. But, you know that in ALL BANK account in Indonesia, the 1/100 fractional STILL be USED 100%. Please take a look at the Indonesia's Big company report / financial statement, or you can see the Jakarta Stock Exchange. And the exchange rate between IDR and ALL other currency, ALWAYS uses 1/100 fractional (in bank transaction). I can not understand why it's so important to maintain 0 decimal points, while the Indonesia's accounting real life practice ALWAYS and ALWAYS using 1/100 fractional nominal. I hope you can consider this issue wisely. Warmest regards. JJ Setiawan
Thanks for the fast response. So we really have two bugs here: 1. The "smallest fraction" setting of the account is ignored (see bug 408444). 2. The "smallest fraction" setting of the IDR currency should be 1/100 instead of 1. So I think I will apply Frank's patch, which fixes #2. If some user really wants to have 0 decimal points for an IDR-denominated account, they will have to wait until bug 408444 is fixed; then they can set the account's smallest fraction to 1 to customize it.
I have added additional comments to bug 408444 to emphasize bug #1. I think we should track that bug there instead of here. We will continue to track #2 here.
Frank Ellenberger's patch committed as r17472. Requesting backport for 2.2. Thanks very much!
Applied to branches/2.2 as r17540 for inclusion in GnuCash 2.2.7. Thanks a lot!
GnuCash bug tracking has moved to a new Bugzilla host. This bug has been copied to https://bugs.gnucash.org/show_bug.cgi?id=543061. Please update any external references or bookmarks.