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

看板java作者 (!H45)時間17年前 (2008/06/04 18:25), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/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 : 是不是有什麼格式化輸出的函式可以用???? 我的推文方案根本和原PO一樣....為了表示誠意,我用其他方便的方法在這邊展示 public static void main(String[] args) throws Throwable { final double a = -0.3; final double b = -1.0; System.out.println("a = " + format(a)); System.out.println("b = " + format(b)); } public static String format(double x) { final long y = (long)x; if (x == y) { return String.valueOf(y); } else { return String.valueOf(x); } } --- 跑出來的結果 a = -0.3 b = -1 --- 重點在 format 函式,只要把 double 轉型成 long 再比較就知道有沒有非零小數了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.247.13 ※ 編輯: H45 來自: 140.116.247.13 (06/04 18:26)

06/04 18:27, , 1F
若有精準度的問題請改用大數,囧
06/04 18:27, 1F

06/04 19:55, , 2F
感覺有快一點~~晚一點我試試看~~
06/04 19:55, 2F
文章代碼(AID): #18HcsCo7 (java)
討論串 (同標題文章)
文章代碼(AID): #18HcsCo7 (java)