Java 为什么我无法格式化其他两个国家(中国和法国)的货币
我能够格式化美国和印度的货币。我已经尝试了使用Localebuilder的几个实现,谁能解释一下我遗漏了什么Java 为什么我无法格式化其他两个国家(中国和法国)的货币,java,currency,number-formatting,Java,Currency,Number Formatting,我能够格式化美国和印度的货币。我已经尝试了使用Localebuilder的几个实现,谁能解释一下我遗漏了什么 import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; import java.text.NumberFormat; import java.util.Locale; public class Solution {
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.text.NumberFormat;
import java.util.Locale;
public class Solution {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double payment = scanner.nextDouble();
scanner.close();
// Write your code here.
NumberFormat us = NumberFormat.getCurrencyInstance(Locale.US);
System.out.println("US: " + us.format(payment));
Locale indiaa = new Locale("en", "IN");
NumberFormat india = NumberFormat.getCurrencyInstance(indiaa);
System.out.println("India: " + india.format(payment));
Locale chinaLocale = new Locale.Builder().setLanguage("zh").setRegion("CN").build();
NumberFormat china = NumberFormat.getCurrencyInstance(chinaLocale);
System.out.println("China: " + china.format(payment));
NumberFormat france = NumberFormat.getCurrencyInstance(Locale.FRANCE);
System.out.println("France: " + france.format(payment));
}
}
我得到的输出
US: $12,324.13
India: Rs.12,324.13
China: ?12,324.13
France: 12?324,13 ?
预期产量
US: $12,324.13
India: Rs.12,324.13
China: ¥12,324.13
France: 12 324,13 €
我还是个初学者
提前感谢中没有用于印度的字段,因此,您需要为印度创建一个自定义的
区域设置
。但是我认为你提到的中国
和法国
没有任何这样的问题。请查看以下程序的输出:
import java.text.NumberFormat;
import java.util.Locale;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
System.out.print("Enter an amount: ");
Scanner scanner = new Scanner(System.in);
double payment = scanner.nextDouble();
scanner.close();
Locale indiaLocale = new Locale("en", "IN");
NumberFormat us = NumberFormat.getCurrencyInstance(Locale.US);
NumberFormat india = NumberFormat.getCurrencyInstance(indiaLocale);
NumberFormat china = NumberFormat.getCurrencyInstance(Locale.CHINA);
NumberFormat france = NumberFormat.getCurrencyInstance(Locale.FRANCE);
System.out.println("US: " + us.format(payment));
System.out.println("India: " + india.format(payment));
System.out.println("China: " + china.format(payment));
System.out.println("France: " + france.format(payment));
}
}
示例运行:
Enter an amount: 200.34
US: $200.34
India: ₹ 200.34
China: ¥200.34
France: 200,34 €
更新:
如果您仍然面临这个问题,可能是因为您的EclipseIDE中的设置。检查是否有帮助。中没有印度字段,因此,您需要为印度创建自定义的
区域设置。但是我认为你提到的中国
和法国
没有任何这样的问题。请查看以下程序的输出:
import java.text.NumberFormat;
import java.util.Locale;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
System.out.print("Enter an amount: ");
Scanner scanner = new Scanner(System.in);
double payment = scanner.nextDouble();
scanner.close();
Locale indiaLocale = new Locale("en", "IN");
NumberFormat us = NumberFormat.getCurrencyInstance(Locale.US);
NumberFormat india = NumberFormat.getCurrencyInstance(indiaLocale);
NumberFormat china = NumberFormat.getCurrencyInstance(Locale.CHINA);
NumberFormat france = NumberFormat.getCurrencyInstance(Locale.FRANCE);
System.out.println("US: " + us.format(payment));
System.out.println("India: " + india.format(payment));
System.out.println("China: " + china.format(payment));
System.out.println("France: " + france.format(payment));
}
}
示例运行:
Enter an amount: 200.34
US: $200.34
India: ₹ 200.34
China: ¥200.34
France: 200,34 €
更新:
如果您仍然面临这个问题,可能是因为您的EclipseIDE中的设置。检查是否对您有帮助。请将您的问题包括在问题和您的问题中。我添加了预期的vs我得到的,我清楚地提到了我使用的所有代码,我在问题中提到了这两个国家。可能是字体问题;也许你的字体没有欧元符号。你能说出你在哪里运行代码吗?您正在使用命令行吗?日食?IntelliJ?@另一个dave我在黑客级别上运行它。我的代码没有显示任何错误。你认为没有欧元符号会是问题吗?请你的问题包括问题和你的问题。我添加了预期vs我得到的,我清楚地提到了我使用的所有代码,我在问题中提到了两国。可能是字体问题;也许你的字体没有欧元符号。你能说出你在哪里运行代码吗?您正在使用命令行吗?日食?IntelliJ?@另一个dave我在黑客级别上运行它。我的代码没有显示任何错误。你认为没有欧洲标志会是问题吗?我为印度创造了一个地方。但是,当我运行代码时,我的输出与上面提到的一样,我在上尝试了Arvinds代码,它工作正常。@Freiheit我认为这是字体问题,因为当我在eclipse上尝试Arvinds代码时,我仍然没有得到正确的输出output@Freiheit输入金额:123美元:$123.00印度:?123.00中国:?123.00法国:123,00欧元我确实为印度创建了语言环境。但是,当我运行代码时,我的输出与上面提到的一样,我在上尝试了Arvinds代码,它工作正常。@Freiheit我认为这是字体问题,因为当我在eclipse上尝试Arvinds代码时,我仍然没有得到正确的输出output@Freiheit输入金额:123美元:$123.00印度:?123.00中国:123.00法国:123,00欧元