我想從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