I'm noticing a problem with foreign transactions having a large number of decimal places in the conversion factor. My default currency is USD. Let's say I get paid something like $0.45 USD interest, but instead of USD it's in a foreign currency where the conversion rate is like 0.000245. So what I'm entering in the account ledger is like 1835.00 for the deposit and then the conversion dialog opens and I enter 0.000245. The Price Database should simply save 0.000245 as the price of the foreign currency. Unfortunately, it's saving either 0.0002 or 0.000200 (I'm not sure which) and this is causing the balance in the Total (USD) column to be in error by about 20%. I have to go back to the Price Database and manually re-enter the correct price to get the correct account balance in USD.
Try entering the amount in USD into the exchange rate part of the transfer dialog instead of the rate.
Same problem. I tried just now entering a deposit of 1845.00 with a conversion to 0.45. Then I open the Price Database and the new entry is 0.000200
Is "Force Prices to display as decimals" checked in Preferences>General? Did GnuCash record the correct USD amount for the deposit?
Yes and Yes.
What does the pricedb display when you un-check the preference item?
Tried it just now. Unchecking that preference had no effect on this bug. The accounts are Bank and Income type. Didn't see any changes in the accounts or in the price database behavior.
Found and fixed: There was a stray call to round the value in the Transfer Dialogs new_price function.
*** Bug 797719 has been marked as a duplicate of this bug. ***
Just tested 3.10-57 and it seems fixed now. Thank you!