我想格式化印度的货币,预期输出是:“
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.")
”。
您应该能够使用 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 卢比