我在Java应用程序中使用freemarker模板将页面加载到Java Spring MVC Web Application
中。通常,我使用gt, lt, lte, gte
等内置函数来比较两个数字。
当前,我遇到一种情况,从控制器返回的值为double
。现在,我具有诸如-1.0
或0.0
的值。我要做的就是检查值是否小于0
或等于0
,以便可以像往常一样有条件地显示内容。
当数字为double
时,有什么方法可以比较freemarker中的数字。我在网上找不到任何合适的解决方案。
答案 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中salesTaxRate
是double
时没有问题:
<#if (orderSummary.order.ioItems[0].salesTaxRate > 0)>
<td>Tax (${orderSummary.order.ioItems[0].salesTaxRate}%):</td>
<#else>
<td>Tax:</td>
</#if>
尝试比较时会发生什么?您是否遇到了一些问题,该值应该为零,但实际上却是很小的值(0.000000000001)?