Java 如何在将双精度值转换为astring后删除其小数点

Java 如何在将双精度值转换为astring后删除其小数点,java,android,Java,Android,我想从double值中删除小数点。我试着把它转换成字符串 double intify(double a) { String s=Double.toString(a); String s2=s.replaceAll(".",""); a=Double.parseDouble(s2); return a; } 如果我通过123.4567,它应该返回1234567。替换正则表达式。您应改为使用: 替换正则表达式。您应改为使用: 使用字符串的方法代替replace

我想从
double
值中删除小数点。我试着把它转换成字符串

double intify(double a)
{
    String s=Double.toString(a);
    String s2=s.replaceAll(".","");
     a=Double.parseDouble(s2);

    return a;

}
如果我通过123.4567,它应该返回1234567。

替换正则表达式。您应改为使用:

替换正则表达式。您应改为使用:

使用字符串的方法代替replaceAll:

String s2 = s.replace(".", "");
As.“.”在正则表达式中有特殊含义,replaceAll将源字符串(即第一个参数)视为正则表达式。

而不是replaceAll使用字符串的方法:

String s2 = s.replace(".", "");

As.“.”在正则表达式中有特殊含义,replaceAll将源字符串(即第一个参数)视为正则表达式。

您的问题定义得不够好,无法给出一般答案,但如果您想去掉小数部分,只需将其解析为double,然后将其转换为
int
long
您的问题的定义不足以给出一般的答案,但是如果您想去掉小数部分,只需将其解析为一个double,然后将其转换为
int
long
,下面解决了传入整数(
123
123.0
)或科学记数法(
1.23E7
)的问题:

Double.parseDouble(Double.toString(a).replaceAll(“[.]”(?0$)?”,”)


在您的代码中,只需将
replaceAll
字符串更改为
[.](?0$)?
,该字符串表示“如果小数点后面正好是数字0,并且后面没有任何内容,则删除小数点和数字0”。

下面解决了传入整数的问题(
123
123.0
),或科学记数法中的双精度(
1.23E7
):

Double.parseDouble(Double.toString(a).replaceAll(“[.]”(?0$)?”,”)


在您的代码中,只需将
replaceAll
字符串更改为
[.](?0$)?
,该字符串表示“如果小数点后面正好是数字0,并且后面没有任何内容,则删除小数点和数字0”。

代码应如何处理固定的小数点?对于输入
13.5
或输入
3.33333333…
,您希望得到什么结果?代码应该如何处理固定小数?对于输入
13.5
或输入
3.33333333…
,您期望得到什么结果?在以下两种情况下,此答案和@Mureinik的失败:1)如果传入的双精度是整数,2)如果传入的双精度是科学记数法。在这两种情况下,返回值都是原始数字*10,这可能不是原始海报所期望的。在以下两种情况下,此答案和@Mureinik的失败:1)如果传入的双精度是整数,2)如果传入的双精度是科学记法。在这两种情况下,返回的值都是原始数字*10,这可能不是原始海报所期望的。
    Double i=Double.parseDouble("String with double value");


    Log.i(tag,"display double "+i);


    try{
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(0);// set as you need
        String myStringmax = nf.format(i);


        String result = myStringmax.replaceAll("[-+.^:,]","");
        Double i=Double.parseDouble(result);

       int max= Integer.parseInt(result);


    }catch(Exception e){
        System.out.println("ex="+e);
    }