作者dirx (??????)
看板java
標題Re: [問題] parse 浮點數
時間Mon Dec 17 17:32:45 2007
※ 引述《ling07 (神風特攻隊)》之銘言:
: String s="1.56789";
: float num=0;
: num=Float.parseFloat(s);
: 我知道可以用上面的方法把字串s轉成小數
: 但有沒有方法可以控制小數點的位數
: 例如假設s為1.56789
: 如何控制在parse後,只要1.56
: 先感謝了 <(_ _)>
另一種方法:
使用 Regular Expression
/*
s - 浮點數字串
n - 小數位數
*/
String truncate(String s, Integer n){
Pattern p = Pattern.compile("([+-]?\\d+)(.(\\d+))?");
Matcher m = p.matcher(s);
if(m.find()){
String newStr = m.group(1);
String fraction = m.group(3);
if(fraction != null){
if(fraction.length() > n){
return newStr + "." + fraction.substring(0, n);
}else{
return newStr + "." + fraction;
}
}else{
return newStr;
}
}else{
return s;
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.75.28.114
推 superlubu:其實你的 pattern string 有 bug XD 12/17 19:21
→ dirx:不好意思,請問我的BUG發生在哪? 真的十分感謝指教。 12/18 08:20
推 superlubu:後面 (.(\\d+)) 那邊,因為 "." 本身是 wild pattern 12/18 11:40
→ superlubu:所以應該是 (\\.(\\d+)) 這樣 12/18 11:42