【问题标题】:Can JSTL fmt:formatNumber be used to get this output: "1 234.56"?可以使用 JSTL fmt:formatNumber 来获得此输出:“1 234.56”吗?
【发布时间】:2013-02-26 11:09:19
【问题描述】:

我正在尝试以这种特定格式格式化数字:

“1 234.56”

所以,两位小数,用点分隔。并用空格字符(可选单引号)对数千进行分组。输入值永远不会大于 9999.99。

我尝试为此使用模式,甚至使用语言环境,但无济于事。

【问题讨论】:

  • 据我所知,您无法指定在每 3 个字符后打印一个空格的模式。我在 CodeRanch 上发现了类似的东西,但不是很漂亮:coderanch.com/t/292958/JSP/java/…。也许有帮助

标签: jstl


【解决方案1】:

这是一种方法。

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="val" value="9999.99" /> 
<fmt:formatNumber value="${val}" pattern="#,###.##" var="pat" /> 
${fn:replace(pat, ",", " ")}

【讨论】:

  • 所以基本上可以在 JSTL 中使用字符串操作,我不知道这一点。我让它在我的用例中工作。谢谢!!如果它对任何人都有帮助,我最终所做的或多或少是这样的: ${fn:replace(pat, "," , ".")} 我使用撇号作为千位分隔符...编辑:Dang,我认为 cmets 中的代码块是可能的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-15
  • 2017-05-24
  • 2013-01-01
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多