我想从double
值中删除小数点。我试图将其转换为字符串如何在将小数点转换为字符串后从小数点中删除小数点
double intify(double a)
{
String s=Double.toString(a);
String s2=s.replaceAll(".","");
a=Double.parseDouble(s2);
return a;
}
如果我通过123.4567它应该返回1234567
我想从double
值中删除小数点。我试图将其转换为字符串如何在将小数点转换为字符串后从小数点中删除小数点
double intify(double a)
{
String s=Double.toString(a);
String s2=s.replaceAll(".","");
a=Double.parseDouble(s2);
return a;
}
如果我通过123.4567它应该返回1234567
replaceAll
取代了正则表达式。您应该使用replace
代替:
String s2 = s.replace(".", "");
你的问题对于普通答案的定义不够好,但是如果你想摆脱小数部分,只需将其解析为双精度型,然后将其转换为int
或long
。
以下解决了(123
或123.0
)传递一个整数的问题,或者用科学计数法(1.23E7
)双:
Double.parseDouble(Double.toString(a).replaceAll("[.](?0$)?",""));
在你的代码,只是改变了replaceAll
字符串[.](?0$)?
,其中规定“删除小数点以及数字0,如果它正好在小数点后面,并且之后没有任何数字”。
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);
}
该代码应该如何处理固定的十进制数?你期望输入“13.5”或输入“3.33333333 ...”的结果是什么? – Rikkles 2015-02-07 08:14:16