java: 获取 NumberFormat.getCurrencyInstance() 结果的不同部分
java: get different parts of NumberFormat.getCurrencyInstance() result
在Java中,使用NumberFormat.getCurrencyInstance(),我可以获得表示价格的格式化字符串。例如
NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.GERMANY);
System.out.println(nf.format(20.10)); // "20,10 €"
有没有简单的方法来获取这个格式化字符串的不同部分?即类似
integerPart -> 20
decimalPart -> 10
currencySymbol -> €
decimalSeparator -> ,
谢谢!
您实际上要求的是两件不同的事情:
integerPart
和decimalPart
属于输入值。它们可以用一些简单的数学计算:
double input = 20.10;
int integerPart = (int)input; // 20
int decimalPart = (int)((input - integerPart) * 100); // 10
currencySymbol
和 decimalSeparator
与 output 值相关。可以使用 DecimalFormatSymbols
class:
检索它们
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(Locale.GERMANY);
String currencySymbol = symbols.getCurrencySymbol(); // €
char decimalSeparator = symbols.getDecimalSeparator(); // ,
在Java中,使用NumberFormat.getCurrencyInstance(),我可以获得表示价格的格式化字符串。例如
NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.GERMANY);
System.out.println(nf.format(20.10)); // "20,10 €"
有没有简单的方法来获取这个格式化字符串的不同部分?即类似
integerPart -> 20
decimalPart -> 10
currencySymbol -> €
decimalSeparator -> ,
谢谢!
您实际上要求的是两件不同的事情:
integerPart
和decimalPart
属于输入值。它们可以用一些简单的数学计算:double input = 20.10; int integerPart = (int)input; // 20 int decimalPart = (int)((input - integerPart) * 100); // 10
检索它们currencySymbol
和decimalSeparator
与 output 值相关。可以使用DecimalFormatSymbols
class:DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(Locale.GERMANY); String currencySymbol = symbols.getCurrencySymbol(); // € char decimalSeparator = symbols.getDecimalSeparator(); // ,