Получение поплавка без инструмента Math в Apache Velocity - PullRequest
0 голосов
/ 03 августа 2020

У меня есть ситуация, когда мне нужно захватить полный десятичный вывод вычисления в Velocity, однако у меня нет доступа к Math (MathTool) в решении, с которым я имею дело, и я не могу добавить его.

Есть ли способ выполнить деление и захватить часть после десятичной дроби до 3 разрядов без использования библиотеки «Math» скоростей?

В основном, моя цель такова:

  1. Выполните деление, такое как 4/3, что даст 1,3333333333
  2. Сохраните 2 знака после запятой, чтобы окончательный результат был 1,33
  3. Получите результат 1,33 как тип двойного, чтобы вы могли выполнить дальнейшая математическая арифметика c операций с ним (нельзя просто форматировать как строку, если мы не можем скрыть ее обратно в double)

Я новичок в Velocity, поэтому любое направление здесь было бы потрясающим.

Спасибо! Боб

1 Ответ

0 голосов
/ 12 августа 2020

Возможно. И вы можете собрать код округления в макросе следующим образом:

#macro(round $n)
  #set($n = $n * 100)
  #set($n = $n.intValue() / 100.0)
#end

#set($n = 4.0/3.0)
before roundering: $n
#round($n)
after roundering: $n ($n.class.name)

Это приводит к:

before roundering: 1.3333333333333333
after roundering: 1.33 (java.lang.Double)
...