设置印度货币格式以显示“Rs”而不是 Java 15 中的“$”

问题描述 投票:0回答:1

我想格式化印度的货币,预期输出是:“

India: Rs.69,048.88
”。然而,即使我已将数字转换为印度编号格式,结果却是:“
India: ₹69,048.88
”。

import java.util.Scanner;
import java.util.Locale;
import java.text.NumberFormat;

public class Main {
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        double payment = scan.nextDouble();
        scan.close();

        NumberFormat i = NumberFormat.getCurrencyInstance(new Locale("en", "IN"));
        System.out.println("India: " + i.format(payment));
    }
}

我假设在 Java 8 中,输出包含“

Rs.
”,但在 Java 15 中,它使用卢比符号 (
)。我不确定如何在 Java 15 中获取“
Rs.
”。因此,我需要使用
Rs.
将卢比符号替换为“
.replace("₹", "Rs.")
”。

java format locale currency java-15
1个回答
0
投票

您应该能够使用 DecimalFormat 和 DecimalFormatSymbols 来定义货币及其符号的格式。

public static void main(String[] args) {
    BigDecimal payment = new BigDecimal("12345.67");
    //get the currency format as per your default locale
    DecimalFormat rsRupeeNumberFormat = (DecimalFormat) DecimalFormat.getCurrencyInstance();
    DecimalFormatSymbols dfs = new DecimalFormatSymbols();
    dfs.setCurrencySymbol("Rs.");
    //set the symbol to "Rs." instead
    rsRupeeNumberFormat.setDecimalFormatSymbols(dfs);
    System.out.println("India: " + rsRupeeNumberFormat.format(payment));
}

输出:

印度:12,345.67 卢比

© www.soinside.com 2019 - 2024. All rights reserved.