Bug 508703 - problem entering monetary values with decimal separator
Summary: problem entering monetary values with decimal separator
Status: REPORTED
Alias: None
Product: kmymoney
Classification: Applications
Component: general (other bugs)
Version First Reported In: 5.2.1
Platform: FreeBSD Ports FreeBSD
: NOR normal
Target Milestone: ---
Assignee: KMyMoney Devel Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-08-25 10:02 UTC by Andriy Gapon
Modified: 2025-08-26 07:36 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
Currency settings for UAH (36.59 KB, image/png)
2025-08-25 10:18 UTC, Andriy Gapon
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andriy Gapon 2025-08-25 10:02:33 UTC
SUMMARY

I observe a strange issue when entering monetary values with decimal separator (at least, in my local currency).
Previously I used version 5.1.3 and I didn't think how I actually entered the separator.
I think that I mostly used the keypad key and it entered period as the separator and everything worked well.

5.2.1 seems to be locale aware (the locale is uk_UA) and it does not accept period as the separator.
That is, I can enter a period and it is shown, but if I leave a field or commit the entry, then the period disappears as if it was not there.  For example, "123.45" becomes "12345".

So, it seem that I have to use a comma now as it is the correct decimal separator for the locale.
But there is another problem with it.
If I type in a number like "123,45" it actually gets entered as "12,34".
That is, the comma is moved one position left for some reason.

STEPS TO REPRODUCE
1. Create a new ledger record
2. Type in "123,45" as the amount, fill other fields and enter the record

OBSERVED RESULT

The actual amount is shown as "12,34"

EXPECTED RESULT

The amount is shown as entered, "123,45"

SOFTWARE/OS VERSIONS
KDE Plasma Version: 6.4.4
KDE Frameworks Version: 6.17.0
Qt Version: 6.9.1

ADDITIONAL INFORMATION
Comment 1 Andriy Gapon 2025-08-25 10:08:13 UTC
After submitting this, I found a work-around of sorts.
When I want to enter "123,45" I have to type it in as "123,450".
The last digit does not seem to be important but I use zero just in case.
Comment 2 Andriy Gapon 2025-08-25 10:18:34 UTC
Created attachment 184430 [details]
Currency settings for UAH
Comment 3 Thomas Baumgart 2025-08-25 13:06:36 UTC
That is rather strange. What does KMyMoney print out on the very first few lines when you start in in a terminal window? Here's what I get:

--> start with my own locale
$ kmymoney
Model for "ST" loaded with 4 items in 0 ms
Monetary values will be formatted based on locale "de_DE" Example:  "123,45 €"
Long date format "dddd, d. MMMM yyyy"
Short date format "dd.MM.yy"
Narrow date format "dd.MM.yy"
Decimal symbol ',' 44
Thousand separator '.'

--> start with yours:
$ LC_MONETARY="uk_UA.UTF-8" kmymoney
Model for "ST" loaded with 4 items in 0 ms
Monetary values will be formatted based on locale "uk_UA" Example:  "123,45 ₴"
Long date format "dddd, d. MMMM yyyy"
Short date format "dd.MM.yy"
Narrow date format "dd.MM.yy"
Decimal symbol ',' 44
Thousand separator '.'

Important is the decimal symbol and thousand separator. BTW, the important part is to set LC_MONETARY and not LC_NUMERIC. The function of the keypad dot or comma is controlled via KDE's advanced keyboard setting called "Numeric keypad Delete behavior". That might also influence the behavior.
Comment 4 Andriy Gapon 2025-08-25 13:19:38 UTC
This is what I see:

Model for "ST" loaded with 4 items in 0 ms
Monetary values will be formatted based on locale "uk_UA" Example:  "123,45 ₴"
Long date format "dddd, d MMMM yyyy"
Short date format "dd/MM/yyyy"
Narrow date format "dd/MM/yyyy"
WebConnect: Try to connect to WebConnect server
WebConnect: Connect to server failed
WebConnect: Running in server mode
System icon theme as reported by QT:  "breeze-dark"
App icon theme as configured in KMyMoney:  "system"
Obeying the system-wide icon theme, currently set to:  "breeze-dark"

Strangely, there is "decimal symbol" line...
Let me double check if my locale settings are consistent.

FWIW, I also have a tweak in KMyMoney language configuration.
Primary Language: US English (en_US)
Fallback Language: Ukrainian (uk)

That is, because I need local monetary locale, but I prefer English interface.
Comment 5 Andriy Gapon 2025-08-25 13:43:33 UTC
Okay, I found something unusual in my environment, but it's something that I had for a long time.
So maybe the problem is a pilot error but maybe it's something worth fixing.

First, if I clear all LC variables and leave only LC_MONETARY=uk_UA.UTF-8, then everything works great.
Even '. / DEL' key on the keypad enters ",".

However, the problem that I observed can be reproduced with:
LC_MONETARY=uk_UA.UTF-8 LC_NUMERIC=en_GB.UTF-8 kmymoney

Apparently, having incompatible (different decimal symbols) LC_MONETARY and LC_NUMERIC confuses whatever component is responsible for monetary input in KMyMoney.