parseDecimalOrNull
Parses a user-entered decimal whose separator follows the keyboard locale — 48,21 on a comma locale, which String.toDoubleOrNull rejects. A lone separator is always the decimal mark; grouping is only recognised when more than one appears, in which case the last one is the decimal mark. Returns null for anything unparseable.