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