gpt4 book ai didi

java - JSTL:BigDecimal 的绝对值(正确的方法...)

转载 作者:行者123 更新时间:2023-11-29 06:05:57 25 4
gpt4 key购买 nike

请原谅我今晚脑子放屁,但出于某种原因......这是我现在能想到的最好的解决方案,即现在使用 JSTL 获取 BigDecimal 的 ABS...也没有 ABS 之外的数学技巧。我必须保持精度。

我知道有更好的方法来处理它...您有什么建议?任何谷歌搜索都可以获取有关 formatNumber 的帮助并处理增量/负数的货币。

<c:forEach items="${arr}" var="cursor" varStatus="itemsRow">
<c:choose>
<c:when test="${cursor.value < 0}">
<td width="75px" align="right">
<fmt_rt:formatNumber pattern="#,###,###,###.##" value="${cursor.value * -1}" minFractionDigits="2"/></td>
</c:when>
<c:otherwise>
<td width="75px" align="right">
<fmt_rt:formatNumber pattern="#,###,###,###.##" value="${cursor.value}" minFractionDigits="2"/></td>
</c:otherwise>
</c:choose>
</c:forEach>

最佳答案

在服务端使用BigDecimal.abs();不要在 JSP 中执行此类工作。

如果您必须,将它包装在基于 JSP 的自定义标记中,或者创建一个 JSTL 函数包装器来处理 abs。

另外,重构,类似于这个(完全未经测试),如果你不能在适当的地方做工作:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach items="${arr}" var="cursor" varStatus="itemsRow">
<c:set name="val" value="${cursor.value < 0 ? cursor.value * -1 : cursor.value}"/>
<td width="75px" align="right">
<fmt_rt:formatNumber pattern="#,###,###,###.##" value="${val}" minFractionDigits="2"/>
</td>
</c:forEach>

关于java - JSTL:BigDecimal 的绝对值(正确的方法...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8529867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com