Ahoj, snad to někomu v budoucnu pomůže
Na supportu se nám do rukou dostal případ, kdy bylo potřeba zkrátit počet desetinných míst v ceně na 1 desetinné místo.
V Mergadu máme sice pravidlo Zaokrouhlit číslo, ale to nebylo možné použít, protože bylo potřeba číslo pouze zkrátit a né matematicky zaokrouhlit
Spolu s @ludekvolejnik jsme to vyřešili za pomoci pravidla Najít a nahradit a jednoduchého regulárního výrazu.
Postup
-
Pravidlo Najít a nahradit
-
Regulární výraz > Najít:
^(\d+(?:[\,\.]\d{1})?)(.*)$
- Výraz vyhledá 1. skupinu řetězce čísel
d+
- s desetinným číslem odděleným tečkou nebo čárkou
[\,\.]
- s právě jedním desetinným místem
d{1}
(pokud potřebujeme číslo zkrátit na více des. míst, stačí přepsat číslo v { }) - a na konci 2. skupinu všeho co se nachází za právě jedním desetinným číslem
(.*)
- Výraz vyhledá 1. skupinu řetězce čísel
-
Nahradit:
\1
Zpětné lomítko a číslo odkazuje na 1. skupinu z regulárního výrazu.
V praxi:
Pokud si zapneme Sledování průchodu pravidel:
Regulární výraz si můžete prohlédnout a vyzkoušet zde: