Re: [問題] 關於double 或 int 輸出問題

看板java作者 (卡)時間17年前 (2008/06/05 10:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/8 (看更多)
※ 引述《polomoss (小澤)》之銘言: : 今天我需要使用者輸入兩個數來做運算 : 假設可能為 : 5 6 : 1.2 2.7 : 2.5 2.5 : 然後就是做一些運算,(加法 & 減法) : 所以輸出就會是 : 11 -1 : 3.7 -1.5 : 5 0 --------------(1) : 因為會有小數,所以我從一開始的運算 : 就是打輸入的String 用 Double.parseDouble 轉成 double 格式 : 所以我的輸出就會變成 : 11.0 -1.0 : 3.7 -1.5 : 5.0 0.0 ---------------(2) : 想問有沒有大大有好的方法,讓輸出是 (1) 而不是下面帶有.0 : 是不是有什麼格式化輸出的函式可以用???? : 但是,要做判斷是不是整數,有沒有什麼方法 : 我那天寫題目的方法很笨= = : 我把每個數字用split(".")切割,判斷右邊如果都是0 : 就轉成int 輸出,如果帶有小數,就用double 輸出 : 結果是,整個程式寫下來,變的很複雜 : 所以想問有沒有好的判斷方法呢??(是否有現成函式庫可供判斷) : ps.打了這麼長的解釋,後來想想 : 其實就是要問,如何判斷是整數還是帶有小數@@ 歸納一下你的文章 大致上可分兩個問題 1. 資料為double(或Double) 且內容為整數時 如何不顯示小數點後的.0~ 2. 如何判斷是整數還是帶有小數 如果我沒有歸納錯誤的話...那這兩個問題的解法不一樣.... 問題1.可以直接用java.text.DecimalFormat來解決... 如:System.out.println(new DecimalFormat("#").format(12.00d)); DecimalFormat也可以拿來限制小數顯示的位數 (123.45→123.5) "似乎"會幫忙判斷是否進位 不過在使用經驗中常常不是我們用的四捨五入 不過原po沒有捨入的問題 就不贅述...... 問題2.可以這樣做..... System.out.println(12.34d % 1d); System.out.println(12.34d % 1d == 0); System.out.println(12.00d % 1d == 0); -- ptt首po, 有錯請鞭.....當然也歡迎交流~XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.159.190
文章代碼(AID): #18Hr8x63 (java)
討論串 (同標題文章)
文章代碼(AID): #18Hr8x63 (java)