资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

java中分数到小数的示例分析

这篇文章主要为大家展示了java中分数到小数的示例分析,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“java中分数到小数的示例分析”这篇文章吧。

我们提供的服务有:成都网站制作、网站建设、微信公众号开发、网站优化、网站认证、历城ssl等。为数千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的历城网站制作公司

给定两个整数,分别表示分数的分子 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 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行是判断符号位,如果被除数和除数符号相同,则结果为正,否则为负,先计算整数部分,然后再计算小数部分。整数部分比较简单,小数部分我们只需要保存每次相除的余数即可,然后把它保存在HashMap中,如果有重复的说明出现了循环,这题我们还可以参照前面的23,倒数的循环节

Java的优点是什么

1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Java是面向网络的语言;4. 鲁棒性,java提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。;5. 安全性,用于网络、分布环境下的Java必须防止病毒的入侵。6. 体系结构中立,只要安装了Java运行时系统,就可在任意处理器上运行。7. 可移植性,Java可以方便地移植到网络上的不同机器。8.解释执行,Java解释器直接对Java字节码进行解释执行。

以上就是关于“java中分数到小数的示例分析”的内容,如果该文章对你有所帮助并觉得写得不错,劳请分享给你的好友一起学习新知识,若想了解更多相关知识内容,请多多关注创新互联行业资讯频道。


当前文章:java中分数到小数的示例分析
文章地址:http://www.cdkjz.cn/article/jsdsoi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220