将双倍转换为字符串并删除欧元符号货币
问题描述:
我试图将双值格式化为货币,然后删除欧元符号但我的应用程序崩溃。有人能告诉我哪里错了吗?将双倍转换为字符串并删除欧元符号货币
public class Formatting {
public static String replaceString(String text){
NumberFormat formatter = NumberFormat.getCurrencyInstance();
String moneyString = formatter.format(text);
System.out.println("epargne: "+moneyString);
return text.replaceAll("£", "");
}
public static String convert(double x){
return replaceString(Double.toString(x));
}
}
我人称其为类如下ý
双X = A + B + C;
System.out.println(Formatting.convert(x));
答
format
接受双击,没有必要将该值转换为String。 replaceAll
需要正则表达式,你可以简单地使用replace
这需要一个字符。
public static String replaceString(double value){
NumberFormat formatter = NumberFormat.getCurrencyInstance();
String currencySymbol = formatter.getCurrency().getSymbol();
String moneyString = formatter.format(value);
return moneyString.replace(currencySymbol, "");
}
public static String convert(double x){
return replaceString(x);
}
+0
如果您删除硬编码的货币符号并在其位置使用适当的值,将会+1。 – Perception
+0
@Perception完成! –
答
当你不想让货币回来,你可以简单地使用DecimalFormat
这也会给你(从你comment)四舍五入至小数点后2位:
public static String replaceString(double number) {
NumberFormat formatter = new DecimalFormat("0.00");
return formatter.format(number);
}
什么是例外? – PermGenError
假设我有1000.009我将它转换为1,000.01而没有前面的货币符号 – Dimitri
您的代码使用英镑“英镑”,而不是“欧元”。那是你的意图吗? – rossum