我正在尝试在JSTL中创建一个数字格式模式:
<fmt:message var="myPattern" key="" />
实现这一结果的模式关键是什么:
Input number: 123456789.00
Output format: 123.456.789,00
答案 0 :(得分:0)
您可以使用fn:substring
函数
<c:set value="123456789.00" var="phone"/>
<c:out value="${fn:substring(phone, 0, 3)}.${fn:substring(phone,3,6)}.${fn:substring(phone,6,9)},${fn:substring(phone,10,12)}"/>
别忘了添加,
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
标记到它。
答案 1 :(得分:0)
我假设您不知道号码的长度。所以你可以使用默认的数字模式:
<c:set var="output"><fmt:formatNumber type="number" maxFractionDigits="2" value="${yournumber}"/></c:set>
现在输出的格式为:123,456,789.00
接下来使用 fn:replace 将句点与逗号交换(使用@作为占位符)。
<c:set var="output" value="${fn:replace(output, ".", "@")}"/>
<c:set var="output" value="${fn:replace(output, ",", ".")}"/>
<c:set var="output" value="${fn:replace(output, "@", ",")}"/>
或者作为一个声明:
<c:set var="output" value="${fn:replace(fn:replace(fn:replace(output, ".", "@"), ",", "."), "@", ",")}"/>
注意:我没有测试这些行以确保它们没有拼写错误,所以如果您尝试这些行并且必须修复它们,请报告。