Как сравнить нецелые числа с помощью шаблона freemarker - PullRequest
0 голосов
/ 12 октября 2018

Я использую шаблон бесплатного маркера в своем приложении Java для загрузки своих страниц в мой Java Spring MVC Web Application.Обычно я использую встроенные модули, такие как gt, lt, lte, gte и т. Д., Чтобы сравнить два числа.В настоящее время у меня есть ситуация, когда значение, возвращаемое контроллером, составляет double.Теперь у меня есть значения, такие как -1.0 или 0.0.Все, что я пытаюсь сделать, это проверить, является ли значение меньше 0 или равно 0, чтобы я мог условно отображать свое содержимое, как всегда.

Есть ли способ сравнить числа вСвободный маркер при числе double.Я не смог найти подходящих решений онлайн.

1 Ответ

0 голосов
/ 12 октября 2018

Насколько я знаю, Freemarker на самом деле не обрабатывает двойные числа иначе, чем целые числа.Это из Apache Freemarker Docs :

Number: For example the price of a product. Whole numbers and non-whole numbers are not distinguished; there is only a single number type. So for example 3/2 will be always 1.5, and never 1. Just like if you are using a calculator.

Я использовал этот и другие подобные экземпляры в моих шаблонах без проблем, где salesTaxRate является double в Java:

<#if (orderSummary.order.ioItems[0].salesTaxRate > 0)>          
    <td>Tax (${orderSummary.order.ioItems[0].salesTaxRate}%):</td>
<#else>         
    <td>Tax:</td>
</#if>  

Что происходит при попытке сравнения?Вы сталкиваетесь с проблемами, когда предполагается, что значение равно нулю, но на самом деле является незначительным значением (0,000000000001)?

...