Re: [問題] 取整數問題[會自動進位]

看板java作者 (._.)時間17年前 (2008/10/24 00:28), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/3 (看更多)
: 實際上 我要處理的數據大概是這樣的形式: d2=0.1234567899999999999999999 : 我要抓出第8位數.也就是8這個數[前幾位抓到也沒關係] : 我先把d2乘以10的8次方 變成12345678.99999999999999999 : 想抓出整數12345678 : 但至今試過許多方法.仍然會取成12345679 : 想請教一下 該如何處理這樣的問題呢? : 感謝 : drinks:用BigDecimal運算? 10/23 12:41 : TO樓上 : 我有試著用過 : 雖然BigDecimal可以在取比較精準的位數下進行加 減 乘 除的運算 : 但似乎也無法使用什麼方法將我要的整數位取出來 : 甚至最後輸出前,轉成DOUBLE.還是一樣9會自動進位 BigDecimal a; Scanner s = new Scanner(System.in); a = s.nextBigDecimal(); System.out.println(a.multiply(new BigDecimal("100000000")) .setScale(0, RoundingMode.DOWN)); -- run: 0.1234567899999999999999999 12345678 BUILD SUCCESSFUL (total time: 14 seconds) -- 你可以把 method 看完, 就會發現有 setScale 太久沒寫, 都忘記是叫 method 了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.33.7 ※ 編輯: ogamenewbie 來自: 218.160.33.7 (10/24 00:37)

10/24 12:02, , 1F
感謝 我後來使用的方法和這類似 但您的說明讓我更清楚了
10/24 12:02, 1F
文章代碼(AID): #190AP4s2 (java)
文章代碼(AID): #190AP4s2 (java)