public class TestDevide { public static void main(String[] args) { System.out.println(1f/15f); float[] fs=new float[25]; fs[0]=0.01f; for(int i=0;i<(fs.length-1);i++){ fs[i+1]=fs[i]*(2f-(15f*fs[i])); System.out.println("第"+i+"项逼近1/15:"+fs[i+1]); } } }
结果显示如下
0.06666667 第0项逼近1/15:0.0185 第1项逼近1/15:0.03186625 第2项逼近1/15:0.04850063 第3项逼近1/15:0.061716594 第4项逼近1/15:0.066299126 第5项逼近1/15:0.06666464 第6项逼近1/15:0.06666666 第7项逼近1/15:0.06666666 第8项逼近1/15:0.06666666 第9项逼近1/15:0.06666666 第10项逼近1/15:0.06666666 第11项逼近1/15:0.06666666 第12项逼近1/15:0.06666666 第13项逼近1/15:0.06666666 第14项逼近1/15:0.06666666 第15项逼近1/15:0.06666666 第16项逼近1/15:0.06666666 第17项逼近1/15:0.06666666 第18项逼近1/15:0.06666666 第19项逼近1/15:0.06666666 第20项逼近1/15:0.06666666 第21项逼近1/15:0.06666666 第22项逼近1/15:0.06666666 第23项逼近1/15:0.06666666
很少的几项计算之后就能很确定的逼近真实结果了。这个方法可以将复杂的除法运算转换为乘法,至于真实的计算机内部怎么用二进制运算我就不清楚额