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

看板java作者 (橘三十一)時間17年前 (2008/10/23 23:08), 編輯推噓4(400)
留言4則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《hahakyo (大豪院邪鬼)》之銘言: : 如題 : 舉例而言 : double d1 = 4.9999; //想要抓出整數位4 可利用 : int c1 = (int)d1; //如此c1可得我想要的值4 : 但是. 當小數點位數太多時 例如 d1=4.99999999999999999999; : 那麼以我上面的寫法 得到的數值會變5 也就是自動進位了 : 實際上 我要處理的數據大概是這樣的形式: d2=0.1234567899999999999999999 : 我要抓出第8位數.也就是8這個數[前幾位抓到也沒關係] : 我先把d2乘以10的8次方 變成12345678.99999999999999999 : 想抓出整數12345678 : 但至今試過許多方法.仍然會取成12345679 : 想請教一下 該如何處理這樣的問題呢? : 感謝 好吧....說實在的,我不清楚你要的邏輯是啥?但是.....我剛用String轉 完全沒有進位問題,程式碼如下: double number = 0.1234567899999; System.out.println(String.valueOf(number).substring(0,10)); 我會捉到的東西是 0.12345678,螢幕也是這樣顯示,so....小數點下第八位 對String而言是第10個character....捉了就中了.... 您要不要再試試?(其實最主要還是要看您需要解題的邏輯長怎樣,不然用暴力法對單 一個案根本沒有意義....) 搞不好NumberFormat這個class就可以解您的問題也說不定.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.107.41

10/23 23:19, , 1F
您可以抓的到是因為您小數點下的9不夠多@@ 太多就會進位
10/23 23:19, 1F

10/23 23:26, , 2F
不過後來有用其他方法 暫時解決問題了@@" 感謝
10/23 23:26, 2F

10/24 01:09, , 3F
有人可以問完問題,解出來就閃人的嗎= =
10/24 01:09, 3F

10/24 12:00, , 4F
to樓上 不好意思 我沒那個意思 忽略說明了 和下篇類似方法
10/24 12:00, 4F
文章代碼(AID): #1909DHg8 (java)
文章代碼(AID): #1909DHg8 (java)