我正在尝试为瑞士语言环境设置格式,我公司需要将其格式化为:
9'949.50
-191'565.10
但是当我在JSP中应用以下代码时:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<fmt:setLocale value="de_CH" scope="session"/>
<fmt:formatNumber value="${value}" type="currency" />
我得到了正确的格式,但它添加了我们不想要的货币代码。所以这就是结果:
SFR中。 9'949.50
SFR中。 -191'565.10
有没有办法关闭货币代码显示?我试过各种各样的方式,但我得到的只是例外。
编辑:正如评论中所指出的,这是与JSP相关的问题。
答案 0 :(得分:5)
不确定它是否有帮助。您可以尝试使用空字符串作为值添加currencySymbol属性吗?如下所示:
<fmt:formatNumber value="${value}" type="currency" currencySymbol=""/>
答案 1 :(得分:1)
我认为最好的数字格式是大十进制格式,但现代的框架工作如spring或Jsf有转换格式化程序支持请参阅http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html使用spring标签将自动格式化在客户端,但对于纯jsp最好使用jsp bean:
public class Formatter implements java.io.Serializable
{
private String currency= null;
public String getCurrency(){
return [format here];
}
//setter
}
并在jsp中使用
<jsp:useBean id="cid" class="Formatter" >
<jsp:setProperty name="cid" property="currency"
value="value"/>
<jsp:getProperty name="cid" property="currency"/>
...........
</jsp:useBean>
答案 2 :(得分:0)
<c:set value="20014825.50" var="val" scope="request"/>
<fmt:setLocale value="de_CH"/>
<fmt:formatNumber value="${val}" minFractionDigits="2"/>