I want to track the transactions I made on Binance last year into GnuCash. I found out GnuCash doesn't support Bitcoin or cryptocurrencies in general, so I added them as a security, as suggested in this Reddit answer.
As Binance uses 8 decimal places for all currencies traded on it, I created a security with symbol 'BTC' and fraction 1/100000000. Then, I created two accounts: one called "Bitcoin" for that security (BTC) and another called "Binance" for my deposits in BRL. Since BRL uses 2 decimal places by default, I changed the field 'smallest fraction' of the BRL account to match Binance's decimal places, that is, 1/100000000. So far so good.
When I create a transaction from "Binance" to "Bitcoin" to track a purchase of BTC, I'm allowed to input a value that's up to 8 decimals in the fields "Shares", but the fields "Buy" and "Sell" always rounds the value to 2 decimals places.
To demonstrate it with actual data, my first purchase was on 11 May 2021. I bought 0.000117 BTC when BTC/BRL was at 297,782, which resulted in an expense of precisely 34.840494 BRL. That's the amount I want to place in the field "Buy" of the ledger of the account "Bitcoin", but as soon as I finish editing the field, GnuCash rounds it to 34.84 BRL and automatically adjusts the field "Price" to 297,777.7778, which is incorrect. I spent 34.840494 BRL, not 34.84 BRL.
I thought this might be due to the fact that the account "Binance" uses a 2-digit fiat currency (BRL); that GnuCash might be disregarding my setting for 'smallest fraction', so I had the idea of creating a security for BRL that has 8 decimal places. That didn't work either. I'm afraid GnuCash has hardcoded a 2-digit rounding strategy for values in the fields "Buy" and "Sell". Is there any workaround for this or am I missing something?