在Java中,使用NumberFormat.getCurrencyInstance(),我可以获得表示价格的格式化字符串。 e.g。
NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.GERMANY);
System.out.println(nf.format(20.10)); // "20,10 €"
有没有一种简单的方法来获取此格式化字符串的不同部分?即
之类的东西integerPart -> 20
decimalPart -> 10
currencySymbol -> €
decimalSeparator -> ,
谢谢!
答案 0 :(得分:2)
你真的要求两件事:
integerPart
和decimalPart
属于输入值。它们可以用一些简单的数学计算:
double input = 20.10;
int integerPart = (int)input; // 20
int decimalPart = (int)((input - integerPart) * 100); // 10
currencySymbol
和decimalSeparator
与输出值相关。可以使用DecimalFormatSymbols
类检索它们:
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(Locale.GERMANY);
String currencySymbol = symbols.getCurrencySymbol(); // €
char decimalSeparator = symbols.getDecimalSeparator(); // ,