繁体   English   中英

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

[英]Convert double to string and remove euro sign currency

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

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

    }

}

我在y类中将其称为

双x = a + b + c;

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

format接受双精度型,无需将该值转换为字符串。 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);
}

由于您不想让货币退还,因此您可以简单地使用DecimalFormat ,这也将使您舍入到小数点后2位(根据您的注释 ):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM