如何使用Java的DecimalFormat中的点添加到货币中?



我正试图找到一种用点显示货币的方法,例如它应该是

1.234,56 kr.

目前我正在使用

pattern = "#,##0.00 ¤";
new DecimalFormat(pattern);

这不起作用,因为出于某种原因,丹麦克朗被定义为kr,而不是官方认可的kr。

我一直在寻找一种使用Unicode值来转义这些字符的方法,我会将其添加到模式中,但这不起作用。在这里的官方文件中,我也看不到这样做的方法。

TLDR:我想在货币符号后添加句号。所以现在我有这样的kr,我想要得到的是kr.

货币值的输出取决于相应的国家/地区设置。如果您希望像您的情况一样显式地具有小数点,则必须为Numberformat设置相应的区域设置。例如,用英语表达观点。

例如:

public String FormatWithPoint(double yourValue){
NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH);
nf.setGroupingUsed(false);
return nf.format(yourValue);
}

编辑:如果您需要更多的控制,您也可以执行以下操作:

public String FormatCurreny(double yourValue){
NumberFormat nf = NumberFormat.getCurrencyInstance();
nf.setGroupingUsed(false);
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setCurrencySymbol("kr.");
dfs.setMonetaryDecimalSeparator('.');
((DecimalFormat) nf).setDecimalFormatSymbols(dfs);
return nf.format(yourValue);
}

如果你只想在货币符号后面加一个点,你可以设置一个自定义的货币符号。在这里,我用欧元(注意,你可以把my_symbol.getCurrencySymbol((+"放在这里,而不是"€"如果你想让它适用于所有货币,而不仅仅是一种货币(:

DecimalFormatSymbols my_symbol = new DecimalFormatSymbols();
my_symbol.setCurrencySymbol("€.");
String pattern = "###,###.###¤";
DecimalFormat decimalFormat1 = new DecimalFormat(pattern, my_symbol);
String format = decimalFormat1.format(987654321.321);
System.out.println(format);

这提供

987.654.321,321€.

相关内容

  • 没有找到相关文章

最新更新