如何精确的表达无限小数呢?这在计算机中是一个不可能完成的事情;但是无限循环小数是可以转化成分数,从而精确表达的;那问题来了,如何将无限循环小数转化成分数?例如0.(3),括号中是循环体,可以用1/3或3/9来表示。当然,我们想要的是分子分母不能再约分的最简分数。好吧:)来看看如何实现吧!import java.math.*;

public class Decimal2Fraction {

public String Repeating2Smallest(String repeating, String separate){

String separate_l = separate.substring(0,1);

String separate_r = separate.substring(1,2);

String separate_p = ".";

int index_p = repeating.indexOf(separate_p);

int index_l = repeating.indexOf(separate_l);

int index_r = repeating.indexOf(separate_r);

BigInteger number = new BigInteger(repeating.substring(0,index_p));

int n = index_l-index_p-1;

BigInteger a = BigInteger.ZERO;

if(n>0)a = new BigInteger(repeating.substring(index_p+1,index_l));

int m = index_r-index_l-1;

BigInteger b = BigInteger.ZERO;

if(m<=0) return "请输入正确的循环体";

if(m>0)b= new BigInteger(repeating.substring(index_l+1,index_r));

BigInteger numerator = NumeratorFormula(n, m, a, b);

BigInteger denominator = DenominatorFormula(n , m);

BigInteger GCD = BigInteger.ZERO;

while(!GCD.equals(BigInteger.ONE)){

GCD = numerator.gcd(denominator);

numerator = numerator.divide(GCD);

denominator = denominator.divide(GCD);

}

return number+" "+numerator+"/"+denominator;

}

public BigInteger NumeratorFormula(int n,int m,BigInteger a,BigInteger b){

return BigInteger.TEN.pow(m).subtract(BigInteger.ONE).multiply(a).add(b);

}

public BigInteger DenominatorFormula(int n,int m){

return BigInteger.TEN.pow(m).subtract(BigInteger.ONE).multiply(BigInteger.TEN.pow(n));

}

public static void Console(Object o){System.out.println(o.toString());}

public static void main(String[] args) {

Decimal2Fraction d2f = new Decimal2Fraction();

String s = "0.2[22]";

Console(d2f.Repeating2Smallest(s,"[]"));

}

}

java无限循环小数_无限循环小数转化成分数(Java实现)相关推荐

  1. 如何让梯形变成平行四边形_把梯形转化成平行四边形.ppt

    解决问题的策略课程标准实验教科书苏教版六年级下册数学观察与思考比较下面两个图形的面积大小演示演示小结观察与思考比较下面两个图形的面积大小观察与思考比较下面两个图形的面积大小观察与思考比较下面两个图形的 ...

  2. java如何将日期转化成字符串,Java将日期转换为字符串

    本文概述 我们可以使用java.text.DateFormat类的format()方法在Java中将Date转换为String. DateFormat的format()方法 DateFormat类的f ...

  3. 大专java考试试题_专科—程序设计基础题库-java.doc

    专科-程序设计基础题库-java 专科15级<程序设计基础>题库100道 总共抽8道题,每小题12.5分,共100分. 按题型:顺序(1道).分支(1道).单循环(2道).多循环(1道). ...

  4. java 底层运行_从表面到底层丨Java和JVM的运行原理,现在带给你

    Java,编程语言,被创造于90年代初,在经历了这么多年的风风雨雨,Java已经成长为世界第一的编程语言,根据往期以及目前的数据来看,Java的使用频率为全球第一,即使偶尔会有第二第三的情况,但是这依 ...

  5. eclipse java工程目录_转载:Eclipse下的java工程目录

    对新手来讲,一个Java工程内部的多个文件夹经常会让大家困惑.更可恶的是莫名其妙的路径问题,在Eclipse编写Java程序中,出现频率最高的错误很可能就是路径问题. 这些问题原因其实都是一个,就是关 ...

  6. java自学难点_分享在达内教育培训Java的感受

    刚在达内教育培训完java,给即将来培训以及已经在培的学员分享下我的感受 回想一下在达内教育学习Java时的情景,我仍然兴奋不已,其实在刚接触Java时,自己确实有点晕,但经过一段时间学习,逐渐走出了 ...

  7. java俄罗斯方块视频_[VIP视频]【A0233】java面对对象编程-俄罗斯方块视频教程 高清视频 百度云 百度网...

    Java视频教程名称:java面对对象编程-俄罗斯方块视频教程  俄罗斯方块视频教程 $ X0 X1 Z: W4 P3 T  e. m3 q百度网盘下载链接: . M% x- I- V5 p( J 游 ...

  8. java 类型转换 效率_盘点16个有用的Java工具类,显著提升工作效率!

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  9. java xslt 数据转换_如何将xslt结果转换为Java对象?

    我有一个 XML文件: Empire Burlesque Bob Dylan USA Columbia 10.90 1985 而这个XSL文件: 现在我想将结果转换为Java类. Java的: @Xm ...

  10. ubuntu java classpath 设置_在Ubuntu中正确设置java classpath和java_home

    我有错误 Exception in thread"main" java.lang.NoClassDefFoundError: 当我尝试在Ubuntu上运行编译类时.我使用的是一个非 ...

最新文章

  1. 从文本中提取知识图谱代码比较好的,代码对齐,可以使用的
  2. 使用Eclipse+PyDev+EclipseHtmlEditor搭建Django开发环境
  3. 开源 java CMS - FreeCMS2.6 互动信件
  4. lua学习:使用Lua处理游戏数据
  5. 知乎高赞:iOS 为什么感觉比 Android 流畅?
  6. 四层负载均衡与七层负载均衡
  7. java immutable系列_Java Immutable类代码示例
  8. 局部内部类 java 1614958356
  9. Word 2007 发布测试
  10. how to connect to eduroam
  11. umbrello 用户手册_别克君威车主必备:君威用户手册|君威使用说明书电子版|君威保养手册_搜狐汽车...
  12. github的学习和使用
  13. python批量生成姓名_Python 批量生成中文姓名(百家姓)
  14. FTP下载工具的使用
  15. 论文笔记——Thompson Sampling for Contextual Bandits with Linear Payoffs(线性收益)
  16. 如何在latex中用tikz画一把“圣剑“
  17. unity探索者之Shader Graph所有节点详解-Input篇
  18. 如何在Windows中使用Socks5代理IP保障网络安全
  19. 用Chrome浏览器调试钉钉应用--Web页面调试
  20. 线阵相机调帧率_(转)工业相机参数之帧率相关知识详解

热门文章

  1. 表单标签<input>的介绍
  2. html5霓虹效果代码,HTML5 canvas蜂巢式彩色霓虹背景效果
  3. 计算机开机弹出的今日热点怎么关闭
  4. 计算机用户无法删除文件,教你几招解决电脑上的文件夹删不掉怎么办?
  5. 网站点击量太大崩溃怎么办_网站崩溃时该怎么办
  6. c语言中e什么作用是什么,c语言中%e是什么意思
  7. 金蝶KIS保存记账凭证的时候提示“在清除未下设辅助账的科目所在的会计分录中的核算项目代码时出现冲突或错误,凭证还没有被保存,请您稍后重试。”错误
  8. (转帖)Spring循环依赖的解决办法
  9. c语言ab43错误的是,求助,AB+没法玩下去了,详情请看报错代码
  10. ac1900修改代理服务器,tplink ac1900路由器怎么设置?