使用 NumberFormat 以 java 打印出货币值

Print out currency value in java using NumberFormat

NumberFormat nf =NumberFormat.getCurrencyInstance(Locale.CANADA);
    
System.out.println("Checking account balance = $"+String.format("%.2f", this.balance));

如何连接这两者?

使用 nf.format(value) 根据需要的区域设置设置值的格式。

 NumberFormat nf =NumberFormat.getCurrencyInstance(Locale.CANADA);
 String balance = nf.format(this.balance);
 System.out.println("Checking account balance = "+balance);

由于 NumberFormat 将负责格式化您的余额,因此您不需要使用 String.format 来格式化它。

所以你可以使用类似的东西:

System.out.println("Checking account balance = " + nf.format(balance));

为了强调,我还从文本中删除了 $,因为 NumberFormat 会为您处理。

NumberFormat numberFormat = NumberFormat.getCurrencyInstance(Locale.CANADA);
BigDecimal balance = BigDecimal.valueOf(12323);
System.out.println(String.format("Checking account balance = %s",numberFormat.format(balance)));

您可以尝试以下方法

String number = String.format("%.2f", this.balance);
NumberFormat nf =  NumberFormat.getCurrencyInstance(Locale.CANADA);
System.out.println("Checking account balance = "+ nf.format(Double.valueOf(number)));

余额按照您的意愿格式化,然后转换为货币格式