首页 > 解决方案 > 如何在 Java 的 DecimalFormat 中使用添加点到货币?

问题描述

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

1.234,56 克朗

目前我正在使用

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

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

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

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

标签: javadecimalformat

解决方案


货币价值的输出取决于各自的国家设置。如果您想像您的情况一样明确地使用小数点,则必须为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);
}

推荐阅读