Java 为什么我无法格式化其他两个国家(中国和法国)的货币

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 {

我能够格式化美国和印度的货币。我已经尝试了使用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 {

 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欧元