這篇文章主要為大家展示了java中分數(shù)到小數(shù)的示例分析,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“java中分數(shù)到小數(shù)的示例分析”這篇文章吧。
我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、歷城ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的歷城網(wǎng)站制作公司
給定兩個整數(shù),分別表示分數(shù)的分子 numerator 和分母 denominator,以字符串形式返回小數(shù)。
如果小數(shù)部分為循環(huán)小數(shù),則將循環(huán)的部分括在括號內(nèi)。
示例 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 map = new HashMap();
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ù)符號相同,則結(jié)果為正,否則為負,先計算整數(shù)部分,然后再計算小數(shù)部分。整數(shù)部分比較簡單,小數(shù)部分我們只需要保存每次相除的余數(shù)即可,然后把它保存在HashMap中,如果有重復的說明出現(xiàn)了循環(huán),這題我們還可以參照前面的23,倒數(shù)的循環(huán)節(jié)
1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應(yīng)用程序;2. 面向?qū)ο螅?. 分布性,Java是面向網(wǎng)絡(luò)的語言;4. 魯棒性,java提供自動垃圾收集來進行內(nèi)存管理,防止程序員在管理內(nèi)存時容易產(chǎn)生的錯誤。;5. 安全性,用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須防止病毒的入侵。6. 體系結(jié)構(gòu)中立,只要安裝了Java運行時系統(tǒng),就可在任意處理器上運行。7. 可移植性,Java可以方便地移植到網(wǎng)絡(luò)上的不同機器。8.解釋執(zhí)行,Java解釋器直接對Java字節(jié)碼進行解釋執(zhí)行。
以上就是關(guān)于“java中分數(shù)到小數(shù)的示例分析”的內(nèi)容,如果該文章對你有所幫助并覺得寫得不錯,勞請分享給你的好友一起學習新知識,若想了解更多相關(guān)知識內(nèi)容,請多多關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。