这篇文章主要为大家展示了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中分数到小数的示例分析”的内容,如果该文章对你有所帮助并觉得写得不错,劳请分享给你的好友一起学习新知识,若想了解更多相关知识内容,请多多关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/1010616/blog/4440341