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

我能够格式化美国和印度的货币。我已经尝试过使用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
    China: ¥12,324.13
    France: 12 324,13 €

我仍然是初学者 在此先感谢

ert345 回答:为什么我无法格式化其他两个国家的货币中国和法国

Locale中没有用于INDIA的字段,因此,您需要为印度创建自定义Locale。但是我没有看到您提到的CHINAFRANCE这样的问题。请查看以下程序的输出:

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 €

更新: 如果仍然遇到问题,则可能是由于Eclipse IDE中的设置所致。检查How to support UTF-8 encoding in Eclipse是否对您有帮助。

本文链接:https://www.f2er.com/3091926.html

大家都在问