You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中NumberFormat显示新台币(TWD)格式异常的疑问

问题分析与解答

这个表现是Java本地化实现中的预期行为,背后和台湾地区的日常货币使用习惯有关:

  • 在台湾本地的日常场景里,$通常默认指代新台币,因此Java的Locale.TAIWAN对应的货币格式默认使用$作为符号;而NT$更多用于需要明确区分货币的跨境或正式场景。

如果需要强制显示NT$格式,可以通过自定义DecimalFormatSymbols来修改,示例代码如下:

NumberFormat format = NumberFormat.getCurrencyInstance(Locale.TAIWAN);
format.setCurrency(Currency.getInstance("TWD"));

// 调整货币符号为NT$
if (format instanceof DecimalFormat decimalFormat) {
    DecimalFormatSymbols symbols = decimalFormat.getDecimalFormatSymbols();
    symbols.setCurrencySymbol("NT$");
    decimalFormat.setDecimalFormatSymbols(symbols);
    // 若需要符号和数字间带空格,可追加格式模式调整
    decimalFormat.applyPattern("\u00A4 #,##0.00");
}

System.out.println(format.format(1600)); // 输出 NT$ 1,600.00

内容的提问来源于stack exchange,提问作者Dennis Rippinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 10:42:12