fmt:formatNumber use locale display negative currency in -$xxx.xx format in JSTL

First, we want to know our own locale,how to display the locale in a JSTL?

<c:out value="${pageContext.request.locale.language}"/> 


I'm confused with the jstl tag libs:

I want to format a number to a currency with german style

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
    <title>format number</title>
</head>
<body>
    <c:set var="val" value="40.52" />
    <p> Currency in USA
    <fmt:setLocale value="en_US" 
scope="session"
/>

    <fmt:formatNumber value="${val}" type="currency" />
    </p>
    <p>Currency in Germany
    <fmt:setLocale value="de_DE" 
scope="session"
/>

    <fmt:formatNumber value="${val}" type="currency"/>
    </p>
</body>
</html>

And thats the output:
Currency in USA $40.52
Currency in Germany 40,52 



I am using fmt:formatNumber to format currency in JSTL, it will display negative currency in ($100) format, if you want to make it display negative currency in negative format instead of ($100).

I would suggest:

<fmt:formatNumber type="currency" pattern="$#,##0.00;-$#,##0.00" value="-10000" />

You can remove '$' from the pattern, if you like.


order example:

<c:set  var="val"  value="46563746375"/>
<fmt:formatNumber  value="${val}"  pattern="###.###E0"/>

If you run the above code you will see the number is formatted as the pattern which is 46.5637E9 .



posted on   EvanLong  阅读(179)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示