#string #integer #compare #freemarker
#строка #целое число #Сравнить #freemarker
Вопрос:
У меня есть вариант использования, в котором я получаю сумму в виде строки, и мне нужно сравнить ее с целочисленным значением. Строка имеет следующие условия: 1. Его первые три буквы обозначают валюту 2. Строка может состоять из запятых, например, 540 000 евро обозначает 540000 евро.
Один из способов, которым я могу думать об этом, — это:
1 Возьмите подстроку из 4-го символа, используя ?substring
2 Удалите запятые, используя ?replace
3 Преобразуйте в целое число, используя ?number
4 и затем сравните
Есть ли более чистый способ добиться этого?
Ответ №1:
Вы можете инкапсулировать это в a #function
или a TemplateMethodModelEx
. Но на самом деле, модель данных (контекст шаблона), которую вы используете, довольно странная. Особенно, если предполагается, что шаблон выполняет математические вычисления, вы должны получать числа (например BigDecimal
, -s или Integer
-s), а не эти строки. Поэтому я бы попытался очистить модель данных перед передачей ее в шаблон. Это чистое решение.