如何使用Freemarker Templete比较非整数

时间:2018-10-12 09:26:31

标签: numbers freemarker

我在Java应用程序中使用freemarker模板将页面加载到Java Spring MVC Web Application中。通常,我使用gt, lt, lte, gte等内置函数来比较两个数字。 当前,我遇到一种情况,从控制器返回的值为double。现在,我具有诸如-1.00.0的值。我要做的就是检查值是否小于0或等于0,以便可以像往常一样有条件地显示内容。

当数字为double时,有什么方法可以比较freemarker中的数字。我在网上找不到任何合适的解决方案。

1 个答案:

答案 0 :(得分:0)

据我所知,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.

我在模板中使用了这个实例和其他类似实例,而在Java中salesTaxRatedouble时没有问题:

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

尝试比较时会发生什么?您是否遇到了一些问题,该值应该为零,但实际上却是很小的值(0.000000000001)?