java求两个数后小数点默认无限长度
来源:互联网 发布:软件测试团队建设 编辑:程序博客网 时间:2024/05/18 01:38
闲来没事,写个求两个数相除,想看看后面的小数,此算法可快速算出小数点后千万位。
import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.util.ArrayList;import java.util.List;public class CopyOfChuFa {public static void main(String[] args)throws Exception {int a=1;//被除数int b=14754359;//除数int n=0;//小数点后循环次数int f;//每次相除余数int l=a%b;//第一次相除的余数long k=0;//用来记录小数点后位数File file=new File("E:/["+a+","+b+"]-result.txt");//删除上传计算结果文件if(file.exists()){file.delete();}FileWriter fw=new FileWriter(file,true);BufferedWriter bw=new BufferedWriter(fw);bw.write(a/b+".");f=a%b;a=f*10;List<Integer> result=new ArrayList<Integer>();while(f!=0&&n!=1){//整除或者算到第一重循环就结束result.add(a/b);f=a%b;a=f*10;//f==l表示到小数点循环开始,f==0表示两个数可以整除if(f==l||f==0){n++;}k++;//每隔700万就写入到文件中if(k%7000000==0){for(int i=0;i<7000000;i++){bw.write(result.get(i)+"");}result=new ArrayList<Integer>();}}System.out.println(k);//将最后的结果追加到文件末尾for(int i=0;i<result.size();i++){bw.write(result.get(i)+"");}bw.close();}}
下面是计算出来的部分结果
0.00000006777658046683017540782354557049886070957064281816648219011073269940090247227954803051762533363868942052989221693738101397695420045018560277677939109384555438836753260511012372682540800315350873596067440137521392830417099109490286904365008334147217103772519023022281076392407152354094135841482506966246381831972503854623572599799150881444595458196455705056383676173258357072645446677825854718595365613646787366364069086295107771201717404327765103180693922385919984731291952432498084125511653878016659347925585923454892211854137478964691044863419684989364837876047343025881368346805171271757722582187406447138774378473507388562254720791326820772085049577551962779270858191806231636359126140281661846509224833149308621269144935405191103185167176696730776308208306440151008932343316304015647172472894281615351775024587648978854316883573186744337724193914489948360345576517421055025162394381213036771031530410775554532731648999458397345489560068316082047346143604069820993240031640818825134999087388344014131688133655958893232840545631294453388317310158984202566848210755885769080174882555046952565001298938164646800311690938250858610665498921369610160631173472192184018295881237538004870289519185482744455384337604907132868327251627807077216977030313550049853063762376935521224608944380436994924686324902355974935949437044333813485221553847239314157938003270762220。。。
第一重循环小数点就有7122780位,算出来的文件6.79M。
0 0
- java求两个数后小数点默认无限长度
- 求黄金分割比小数点后无限位(大数据运算,Go+Java语言实现)
- 求两个数的商C语言程序,精确到小数点后100位
- Java 递归求后一个数是前两个数之和
- 两个数相乘,小数点后位数没有限制
- 两个数相乘,小数点后的位数没有限制
- 两个数相乘,小数点后位数没有限制…
- java求两个数最大公约数
- Java 求两个数最小公倍数
- 浮点数精确到小数点后一位(java)
- js中求两个数的百分比,保留小数点后两位百分比
- 两个数相乘,小数点后位数没有限制,请写一个高精度算法
- 两个数相乘,小数点后位数没有限制,请写一个高精度算法
- 两个数相乘,小数点后位数没有限制,请写一个高精度算法
- 两个数相乘,小数点后位数没有限制,请写一个高精度算法
- 两个数相除,无法除尽时获得指定小数点后的位数
- 两个数相乘,小数点后位数没有限制,请写一个高精度算法【转】
- Java求两个数的最大公约数
- 多类分类器
- [LeetCode]Merge Two Sorted Lists
- 验证身份证号码
- VB.NET实现Windows剪贴板监视器
- s6
- java求两个数后小数点默认无限长度
- CentOS添加alias
- 华为机试—姓名的夫妻相
- Object-C详细编程(二)—封装,继承,多态
- Android5.0中TextVIew布局设置和5.0以前的冲突
- 转自博客园-Myeclipse中安装SVN插件
- android:descendantFocusability用法简析
- jdk与jre的区别
- s7