我目前正在处理一项任务,该任务涉及获取一个表示一笔钱的双精度数字,并使用NumberFormat类的getCurrencyInstance方法将其转换为美国、印度、中国和法国的货币格式.
输入:
A single double-precision number denoting 'payment'
输出:
On the first line, print US: 'u' where 'u' is 'payment' formatted for US currency.
On the second line, print India: 'i' where 'i' is 'payment' formatted for the Indian currency.
On the third line, print China: 'c' where 'c' is 'payment' formatted for Chinese currency.
On the fourth line, print France: 'f' where 'f' is formatted for French currency.
输入示例:
12324.134
示例输出:
US: $12,324.13
India: Rs.12,324.13
China: ¥12,324.13
France: 12 324,13 €
我的代码是:
import java.util.*;
import java.text.*;
import java.util.Currency;
public class Solution {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double payment = scanner.nextDouble();
scanner.close();
Locale indiaLocale = new Locale("en", "IN");
Locale locale = Locale.US;
Currency us = Currency.getInstance(locale);
String symbol = us.getSymbol(locale);
System.out.println("US: " + symbol + payment);
Locale locale2 = indiaLocale;
Currency in = Currency.getInstance(locale2);
String symbol2 = in.getSymbol(locale2);
System.out.println("India: " + symbol2 + payment);
Locale locale3 = Locale.CHINA;
Currency ch = Currency.getInstance(locale3);
String symbol3 = ch.getSymbol(locale3);
System.out.println("China: " + symbol3 + payment);
Locale locale4 = Locale.FRANCE;
Currency fr = Currency.getInstance(locale4);
String symbol4 = fr.getSymbol(locale4);
System.out.println("France: " + payment + " " + symbol4);
}
}
我的意见是:
12324.134
我的输出:
US: $12324.134
India: Rs.12324.134
China: ¥12324.134
France: 12324.134 €
我的问题出在输入的格式‘12324.134’上.正如您所看到的,我已经设法输出了正确的货币符号,特别是印度,因为印度没有内置的语言环境,所以我必须构建一个语言为en(即英语)的语言.
我似乎就是不能把逗号放在正确的位置,而且出于某种原因,法国的预期输出在前两位数字之后有一个空格.这可能是因为我没有使用Currency类的正确方法,但这就是我的问题所在.如有任何建议,我们不胜感激.