将double转换为字符串并删除欧元符号货币

时间:2012-12-14 12:22:21

标签: java

我正在尝试将双值格式化为货币,然后删除欧元符号,但我的应用程序崩溃了。有人可以告诉我哪里错了吗?

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));

    }

}

我在课堂上将其称为如下

double x = a + b + c;

的System.out.println(Formatting.convert(X));

2 个答案:

答案 0 :(得分:4)

format接受double,无需将该值转换为String。 replaceAll需要 regexp ,您只需使用需要单个字符的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);
}

答案 1 :(得分:1)

由于您不希望退回货币,您可以简单地使用DecimalFormat,这也会使您舍入到2位小数位(来自comment):

public static String replaceString(double number) {    
   NumberFormat formatter = new DecimalFormat("0.00");
   return formatter.format(number);
}