看板 java 關於我們 聯絡資訊
※ 引述《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