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:
\1Zpě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:

