如何在 JSTL 中对数字进行四舍五入?
我正在 JSP 中进行除法,我想对结果进行四舍五入 - 我应该怎么做?
即
<c:set
var="expiry"
value="${(expire.time - now.time) / (60 * 1000)}"/>
...我如何舍入结果?
谢谢,
I'm doing a division in a JSP and I'd like to round the result - how should I do this?
i.e.
<c:set
var="expiry"
value="${(expire.time - now.time) / (60 * 1000)}"/>
...how do I round the result?
Thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
作为替代方案:
这样您就不会丢失本地化(逗号和点)。
As an alternative:
This way you do not lose localization (commas and dots).
我使用:
截断而不是四舍五入,但这可能已经足够好了。
I used:
which truncates rather than rounding, but that may be good enough.
它可能看起来像:
注意:我认为你应该使用 mod 无论如何或 jstl 的 % 功能,我在示例中使用 mod。
请测试,“过期”和“现在”变量具有不同的值,应该可以正常工作。
It may looks like:
note: i think you should use mod anyway or % functionality of jstl,i use mod in example.
Test,please, "expire" and "now" variables with different values, should work ok.
这个肮脏的黑客怎么样:
但我会在一个 bean 中执行此操作,然后在此处显示结果。除此之外,您还可以在您的顶级域名中定义函数,或者,如果您的环境不支持的话通过实现 Map 并(ab)使用它来获取表达式语言中的函数。您可以实现 get(Object) 方法来执行您想要的操作,并按如下方式调用它:
注意,Helpers 提供了一个“getRound()”方法,该方法返回您的 Map 实现。
What about this dirty hack:
But I would do this in a bean and just show the result here. Beside this, you can define functions in your tld or, if that is not supported in your environment get functions in the expression language by implementing a Map and (ab)use it. You implement the get(Object) method to do what you want and call it like this:
Note, Helpers provides a "getRound()" method which returns your Map implementation.
对于当前的 EL 版本,您可以使用
或
With the current EL version you can use
or