The displayed sum of investments being bought or saled may be subject to a rounding error depending on the fraction setup of the investment. The sum of money involved is rounded according to the fraction setting of the investment, which is wrong. While investments may be subject to fractions, the price for the investment needs financial rounding according to the currency of the price, what are usually 2 digits to display Cent values. Reproducible: Always Steps to Reproduce: 1. Create or edit any investment. Let it have a fraction value of 1 / 1 2. In your stocks account, buy 11 pieces of that investment having a price of 12,34 € (currency does not matter). 3. review the sum price of the investment Actual Results: The sum is being reported as 136 € without any digits. Expected Results: The correct sum would be 135,74 € If the behaviour is as desired, at least the german help information is wrong. It qotes "Stückelung: Die Genauigkeit, mit der Ihr Aktienbesitz gemessen wird. [...] Aktien werden oft nur in ganzen Einheiten gerechnet. Für eine solche Aktie muss der Wert „1“ eingegeben werden." The suggested fraction for stocks is 1 and there is no mention of an impact of the displayed investment sum. Once stored, the investment sum is displayed correctly, it is an annoying effect during entering the transaction.
Git commit c6e31c96a03ad5a7ec5e3695bbfa8336181ab81c by Łukasz Wojniłowicz. Committed on 01/04/2017 at 06:16. Pushed by wojnilowicz into branch 'master'. Fix rounding problem with investments Patch introduces rounding rules per security for fixing bug #372163. It seems that this broker always rounds amounts down while my broker rounds amounts depending on the outlying digit, so it couldn't work for both of us without rules. Rounding is done in InvestTransactionEditor because it has all needed informations at hand. No rounding of shares is done in InvestTransactionEditor::setupPrice. Transaction from bug #372163 looks as follows: brokerage: shares = 1,009 ; value = 1,009 investment: shares = -1 ; value = 1,009 InvestTransactionEditor::setupPrice causes brokerage to look as follows: shares = 1,01 ; value = 1,009 As we can see shares and value diverge, which is unacceptable here. Patch makes assumption that transaction has only single split of stock/mutual fund/bond. Related: bug 345655, bug 365177, bug 372163 FIXED-IN:5.0 Differential Revision: https://phabricator.kde.org/D5187 Signed-off-by: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> M +32 -15 kmymoney/dialogs/investtransactioneditor.cpp M +31 -0 kmymoney/kmymoneyutils.cpp M +22 -0 kmymoney/kmymoneyutils.h M +39 -0 kmymoney/mymoney/mymoneysecurity.cpp M +27 -8 kmymoney/mymoney/mymoneysecurity.h M +1 -0 kmymoney/mymoney/storage/mymoneydbdef.cpp M +3 -0 kmymoney/mymoney/storage/mymoneystoragesql.cpp M +4 -3 kmymoney/widgets/transaction.cpp M +11 -0 kmymoney/wizards/newinvestmentwizard/kinvestmentdetailswizardpage.cpp M +104 -90 kmymoney/wizards/newinvestmentwizard/kinvestmentdetailswizardpagedecl.ui M +2 -0 kmymoney/wizards/newinvestmentwizard/knewinvestmentwizard.cpp https://commits.kde.org/kmymoney/c6e31c96a03ad5a7ec5e3695bbfa8336181ab81c