Bo, I tried your example file and CSV import today and found that I could reproduce the incorrect rounding behavior in 5.9 but not in 5.10. I did a bisect (a binary search through the commits, building and testing at each stop) to locate exactly what commit fixed it. It was https://github.com/Gnucash/gnucash/pull/2036 and the fix was completely accidental. Even in retrospect I can’t explain why the rounding was wrong before that change and is correct after it. I did double-check by reverting it on current stable and observing that the bad rounding reappears.
So upgrade to 5.10 and you’ll be able to import your CSV file. Regards, John Ralls > On Feb 12, 2025, at 01:00, Bo Buckley <topherbuck...@gmail.com> wrote: > > Dear Jim, > > Thank you for your reply. > >> After b), you enter an exchange rate in the Exchange Rate field, press tab >> to move focus out of that field. See if the exchange rate in the equation to >> the right updates with the Exchange Rate you supplied. > > Yes, it updates as expected, but does not change the observed behavior after > pressing OK. > >> Another thing to try is to click the radio button by Debit Amount in the >> Transfer Funds dialogue, then in that field, enter a formula of <yen charge >> as a positive number> * 0.0066 . I expect Gnucash can calculate a USD debit >> amount and put it in that field. If the amount is a whole number of >> dollars, that is further evidence of a bug. > > Results for same test.csv import set: > Date Description Transaction Amount DebitAmountGivenInTransferFundsDialog > ExchangeRateRecordedInPriceDatabase > 2025/01/29 Transfer Fee 20 270*0.0066 89/13500 > 2025/01/29 Transfer Fee 110 175*0.0066 -29/4375 > 2025/01/29 Transfer Fee 175 110*0.0066 -29/4375 > 2025/01/29 Transfer Fee 270 20*0.0066 -0.0065 > > Note the header change from before as now I am entering the Debit amount and > not the Exchange Rate as requested. This is even more bizzare, but I wasn't > sure why you recommended using the positive JPY value so I tried with the > negative and got: > > Date Description Transaction Amount DebitAmountGivenInTransferFundsDialog > ExchangeRateRecordedInPriceDatabase > 2025/01/29 Transfer Fee 20 -270*0.0066 89/13500 > 2025/01/29 Transfer Fee 110 -175*0.0066 89/13500 > 2025/01/29 Transfer Fee 175 -110*0.0066 89/13500 > 2025/01/29 Transfer Fee 270 -20*0.0066 0.0065 > > which looks more reasonable. Although this doesn't really work as a > workaround as the real-world scenario isn't all for transactions for a single > date (i.e. I'd have to manually look up the exchange rate for each date and > input it into this Debit field for every transaction, over an entire year of > transactions). That sounds about as efficient as pen and paper over GNUcash > :D, so I hope to avoid that if possible. > > Assuming I make a temporary JPY expense account duplicate for everything. Is > there an efficient way of pushing these back to a USD expense account after > this bug is resolved? Or would that just be pushing off the inevitable > requirement for manually typing out every transaction again? > > Thanks again. > > On Wed, Feb 12, 2025 at 7:33 AM Jim DeLaHunt <list+gnuc...@jdlh.com > <mailto:list%2bgnuc...@jdlh.com>> wrote: >> Bo: >> >> On 2025-02-11 04:30, Bo Buckley wrote: >> > Dear John, >> > >> > Thanks for your time again. I uploaded the video, test.gnucash and the >> > test.csv file used to import the example transactions to my Network >> > Accesible Storage. You should have public access here: >> > >> > https://gofile.me/7Ad2L/z8EsrYEzD >> >> I was able to watch your "output.mp4" video. Good idea to post it! It >> was more informative than I expected. >> >> I have three observations from watching the video: >> >> 1. Your interaction appears to be: a) Transfer Funds dialogue appears, >> b) you type in an exchange rate of 0.0066, c) you press the OK button on >> the Transfer Funds dialogue. >> >> 2. At the moment between b) and c), there is a difference between the >> value in the Exchange Rate field, and the equation just to its right. >> e.g. at 0'49" in the video, the Exchange Rate field reads "0.0066", and >> the equation reads "1 JPY = 0.009091 USD". This is an interesting >> contradiction. I would expect the value in the Exchange Rate field to >> replace the previous value in the equation. >> >> 3. The result of importing the transactions e.g. at 0'56" in the video >> is that the charges to the Expenses:Bank Service Charge account are >> whole numbers of USD. It as if the arithmetic did not realise that the >> minimum increment for USD is 0.01, and treated it as 1. >> >> This might well be evidence of a bug in this part of GnuCash, I'm not >> sure. It is possible, for example, that when the CSV import kicks off a >> Transfer Funds dialogue for one transaction, it mistakenly labels the >> minimum increment of USD with the minimum increment for JPY. For a lot >> of currencies, the minimum increment in both currencies will be the >> same, 0.01, so I can imagine this getting overlooked. >> >> But one workaround which might be interesting for you to try is to spend >> a little more time interacting with the Transfer Funds dialogue. After >> b), you enter an exchange rate in the Exchange Rate field, press tab to >> move focus out of that field. See if the exchange rate in the equation >> to the right updates with the Exchange Rate you supplied. >> >> Another thing to try is to click the radio button by Debit Amount in the >> Transfer Funds dialogue, then in that field, enter a formula of <yen >> charge as a positive number> * 0.0066 . I expect Gnucash can calculate a >> USD debit amount and put it in that field. If the amount is a whole >> number of dollars, that is further evidence of a bug. >> >> A workaround is not as good as a bug fix, but you can take advantage of >> it faster, while you wait for a bug fix. >> >> Thank you for diligently collecting evidence and for your clear >> explanations. I hope this helps, >> —Jim DeLaHunt >> >> _______________________________________________ gnucash-user mailing list gnucash-user@gnucash.org To update your subscription preferences or to unsubscribe: https://lists.gnucash.org/mailman/listinfo/gnucash-user ----- Please remember to CC this list on all your replies. You can do this by using Reply-To-List or Reply-All.