[問題] 取整數問題[會自動進位]
如題
舉例而言
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
想請教一下 該如何處理這樣的問題呢?
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.14.44
推
10/23 12:32, , 1F
10/23 12:32, 1F
→
10/23 12:34, , 2F
10/23 12:34, 2F
推
10/23 12:41, , 3F
10/23 12:41, 3F
TO樓上
我有試著用過
雖然BigDecimal可以在取比較精準的位數下進行加 減 乘 除的運算
但似乎也無法使用什麼方法將我要的整數位取出來
甚至最後輸出前,轉成DOUBLE.還是一樣9會自動進位
推
10/23 15:01, , 4F
10/23 15:01, 4F
很神奇的
我將d1轉string.仍然會自動進位
※ 編輯: hahakyo 來自: 140.112.14.44 (10/23 16:24)
推
10/23 17:03, , 5F
10/23 17:03, 5F
推
10/24 00:07, , 6F
10/24 00:07, 6F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):