您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了java中分數到小數的示例分析,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“java中分數到小數的示例分析”這篇文章吧。
給定兩個整數,分別表示分數的分子 numerator 和分母 denominator,以字符串形式返回小數。
如果小數部分為循環小數,則將循環的部分括在括號內。
示例 1:
輸入: numerator = 1, denominator = 2
輸出: "0.5"
示例 2:
輸入: numerator = 2, denominator = 1
輸出: "2"
示例 3:
輸入: numerator = 2, denominator = 3
輸出: "0.(6)"
答案:
1public String fractionToDecimal(int numerator, int denominator) {
2 if (numerator == 0) {
3 return "0";
4 }
5 StringBuilder res = new StringBuilder();
6 res.append(((numerator > 0) ^ (denominator > 0)) ? "-" : "");
7 long num = Math.abs((long) numerator);
8 long den = Math.abs((long) denominator);
9 // 整數部分
10 res.append(num / den);
11 num %= den;
12 if (num == 0) {
13 return res.toString();
14 }
15 // 小數部分
16 res.append(".");
17 HashMap<Long, Integer> map = new HashMap<Long, Integer>();
18 map.put(num, res.length());
19 while (num != 0) {
20 num *= 10;
21 res.append(num / den);
22 num %= den;
23 if (map.containsKey(num)) {
24 int index = map.get(num);
25 res.insert(index, "(");
26 res.append(")");
27 break;
28 } else {
29 map.put(num, res.length());
30 }
31 }
32 return res.toString();
33}
解析:
第6行是判斷符號位,如果被除數和除數符號相同,則結果為正,否則為負,先計算整數部分,然后再計算小數部分。整數部分比較簡單,小數部分我們只需要保存每次相除的余數即可,然后把它保存在HashMap中,如果有重復的說明出現了循環,這題我們還可以參照前面的23,倒數的循環節
1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應用程序;2. 面向對象;3. 分布性,Java是面向網絡的語言;4. 魯棒性,java提供自動垃圾收集來進行內存管理,防止程序員在管理內存時容易產生的錯誤。;5. 安全性,用于網絡、分布環境下的Java必須防止病毒的入侵。6. 體系結構中立,只要安裝了Java運行時系統,就可在任意處理器上運行。7. 可移植性,Java可以方便地移植到網絡上的不同機器。8.解釋執行,Java解釋器直接對Java字節碼進行解釋執行。
以上就是關于“java中分數到小數的示例分析”的內容,如果該文章對你有所幫助并覺得寫得不錯,勞請分享給你的好友一起學習新知識,若想了解更多相關知識內容,請多多關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。