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

Java抵押贷款计算器中NumberFormat格式化货币显示为问号问题

问题原因

NumberFormat.getCurrencyInstance()默认会读取JVM的系统默认区域设置(Locale)生成货币格式,当默认Locale不是美元对应区域、或控制台字符编码不匹配时,就会出现货币符号显示为?的异常情况。

解决方案

两步修改即可修复:

  • 在代码导入区新增Locale类的引入:
import java.util.Locale;
  • 将原代码中生成格式化货币字符串的行,修改为指定美国区域,强制使用美元货币格式:
String mortgageFormatted = NumberFormat.getCurrencyInstance(Locale.US).format(mortgage);

验证效果

修改后重新运行程序,输入相同测试参数,输出结果为:

Principal: 100000
Annual Interest Rate: 3.92
Period (Years): 30
Mortgage: $472.81

完全符合预期的美元格式要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:54:02