Re: [問題] 關於double 或 int 輸出問題
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 8 篇):