공부해요/JAVA

Java Currency Formatter

예쁜꽃이피었으면 2024. 1. 12. 10:37

https://www.hackerrank.com/challenges/java-currency-formatter/problem?isFullScreen=true

 

Java Currency Formatter | HackerRank

Format Currency in Java

www.hackerrank.com

 

[에러1]

import java.util.*;
import java.text.*;

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.
        String us = "";//423132
        String india = "";//
        String china = "";//
        String france = "";//
        
        NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);
        us = nf.format(payment); 
        
        nf = NumberFormat.getCurrencyInstance(Locale.forLanguageTag("India"));
        india = nf.format(payment); 
        
        nf = NumberFormat.getCurrencyInstance(Locale.CHINA);
        china = nf.format(payment); 
        
        nf = NumberFormat.getCurrencyInstance(Locale.FRANCE);
        france = nf.format(payment); 
        
        System.out.println("US: " + us);
        System.out.println("India: " + india);
        System.out.println("China: " + china);
        System.out.println("France: " + france);
    }
}

=> 오류1 실행 결과

US: $12,324.13
India: ¤ 12,324.13
China: ¥12,324.13
France: 12 324,13 €

 

=> 답이랑 비교해보면, 인디아의 통화단위가 다르게 보여야 한다.

(Note: India does not have a built-in Locale, so you must construct one where the language is en (i.e., English).)

US: $12,324.13
India: Rs.12,324.13
China: ¥12,324.13
France: 12 324,13 €

 

 

import java.util.*;
import java.text.*;

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.
        String us = "";
        String india = "";
        String china = "";
        String france = "";
        
        NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);
        us = nf.format(payment); 
        
        Locale india_locale = new Locale("en", "IN");
        nf = NumberFormat.getCurrencyInstance(india_locale);
        india = nf.format(payment); 
        
        nf = NumberFormat.getCurrencyInstance(Locale.CHINA);
        china = nf.format(payment); 
        
        nf = NumberFormat.getCurrencyInstance(Locale.FRANCE);
        france = nf.format(payment); 
        
        System.out.println("US: " + us);
        System.out.println("India: " + india);
        System.out.println("China: " + china);
        System.out.println("France: " + france);
    }
}
더보기

Given a double-precision number, , denoting an amount of money, use the NumberFormat class' getCurrencyInstance method to convert  into the US, Indian, Chinese, and French currency formats. Then print the formatted values as follows:

US: formattedPayment
India: formattedPayment
China: formattedPayment
France: formattedPayment

where  is  formatted according to the appropriate Locale's currency.

Note: India does not have a built-in Locale, so you must construct one where the language is en (i.e., English).

Input Format

A single double-precision number denoting .

Constraints

  •  

Output Format

On the first line, print US: u where  is  formatted for US currency.
On the second line, print India: i where  is  formatted for Indian currency.
On the third line, print China: c where  is  formatted for Chinese currency.
On the fourth line, print France: f, where  is  formatted for French currency.

Sample Input

12324.134

Sample Output

US: $12,324.13
India: Rs.12,324.13
China: ¥12,324.13
France: 12 324,13 €

Explanation

Each line contains the value of  formatted according to the four countries'

반응형