如何使用数字格式类格式化货币

时间:2019-06-17 05:43:23

标签: java android

我是Android开发的新手,我被困在一个地方。我想设置货币格式,我要设置为不带小数位和逗号。

示例:现在它显示为23000.00。但是我想要像23,000这样的货币;我该怎么办?

我尝试了格式化程序类,但这对我没有帮助。

这是现在的设置。

public class CurrencyFormatter {

    public static String setsymbol(BigDecimal data, String currency_symbol)
    {
        NumberFormat format = NumberFormat.getCurrencyInstance(Locale.ENGLISH);
        format.setCurrency(Currency.getInstance(currency_symbol));
        String result=data+" "+" دينار";
        return result;
    }
}

我希望输出为(阿拉伯文字)23,000,而不是(阿拉伯语测试)23000.00

3 个答案:

答案 0 :(得分:2)

基本上,您需要一个货币格式化程序对象。

NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance(currentLocale);

之后,您可以格式化一些金额:

Double currencyAmount = new Double(23000.00);
String formattedOutput = currencyFormatter.format(currencyAmount);

Oracle参考文档https://docs.oracle.com/javase/tutorial/i18n/format/numberFormat.html

上有更多选项和解释。

答案 1 :(得分:0)

检查此

 NumberFormat format = NumberFormat.getCurrencyInstance(Locale.getDefault());
 format.setCurrency(Currency.getInstance("USA"));
 String result = format.format(1234567.89);

这是美国的格式集,您可以使用国家/地区代码更改

参考check description here

答案 2 :(得分:0)

尝试一下,它将以这种格式显示23,000,不带小数点,数字中将显示千位分隔符。

String result = null;
    try {
        // The comma in the format specifier does the trick
        result = String.format("%,d", Long.parseLong(data)); // use this result variable where you want to use.

        result = result + " " + " دينار";  // to append arabic text, do as you were doing before.

    } catch (NumberFormatException e) {
    }