高精度除法运算的实现 蒲小勤 1994-03-18 笔者设计了一种算法,可以实现除法的高精度运算,理论上可精确到小数点后无限位。该算法突破了计算机中除法运算的一般概念,不是向计算机直接输入运算式,由计算机运算后得到结果,而是利用了计算机运算速度快的特点,用计算机模仿除法运算的实际步骤,先用被除数除以除数,得到一个整数商和一个余数,将整数商记录下来作为结果,将余数乘以10后作为下一步运算的被除数,继续运算,并往复循环。 将每一步运算得到的整数商转换成字符串存储在字符串变量中,当运算到用户给定的精度时,输出字符串变量的内容即为运算结果。 本文所附程序用高级BASIC语言写成,在Super PC/286微机上运行通过。 5 CLS 10 PRINT "A/B=?" 20 INPUT "input A="; a 30 INPUT "input B="; b 35 INPUT "stop at :"; n 40 IF b = 0 THEN PRINT "error: divided by zero!": BEEP: GOTO 10 50 aa = a 55 s = INT(aa / b) 60 first$ = STR$(s) 70 FOR i = 1 TO n 80 aa = (aa - b * s) * 10 90 s = INT(aa / b) 100 rst$ = rst$ + STR$(s) 110 NEXT i 120 PRINT STR$(a); "/"; STR$(b); "="; first$; "."; rst$ 130 END