高精度计算除法 #
- 高精度计算的除法原理
- 高精度计算的除法描述
- 高精度计算的除法实现
收获 #
学完本节内容,可以初步理解并掌握高精度计算的除法实现。
高精度计算的除法原理 #
在一般的计算中,整数之间的除法可以直接通过取整(//)或者取余(%)来实现。
要实现高精度的计算,主要体现在保留的小数位上面。
小数的除法满足某位数的余数*10后进行除法运算,同整数除法一样,重复取整和取余的过程。
高精度计算的除法描述 #
高精度计算的除法过程如下:
(1)对被除数、除数进行符号标记,并对其取绝对值进行简化计算
(2)通过取整计算整数部分的值,通过取余计算小数部分的值
(3)小数部分的余数*10后,与除数进行取整、取余操作
(4)重复步骤(3),直至满足所需的精度位数要求,终止循环。
(5)恢复符号标记
高精度计算的除法实现 #
python实现代码如下:
def hdiv(dividend, divisor, accuracy): # 定义存储结果的字符串 res = '' # 有负数的话做个标记 if abs(dividend + divisor) == abs(dividend) + abs(divisor): flag = 1 else: flag = -1 # 变为正数,防止取模的时候有影响 dividend = abs(dividend) divisor = abs(divisor) # 计算整数部分 integer = int(dividend // divisor) # 将结果添加入结果 res += str(integer) + '.' # 计算余数 remainder = dividend % divisor # 计算小数部分 for i in range(accuracy): dividend = remainder * 10 res += str(int(dividend // divisor)) remainder = dividend % divisor #变号 if flag == -1: res = '-' + res return res result = hdiv(-1.5, 4.5, 1000) # 计算 print(result)
小结 #
理解并掌握高精度计算除法的原理
用代码实现高精度计算的除法运行
习题 #
- 习题1:简述高精度计算的除法运行过程
- 习题2:仿照高精度计算除法,用代码实现-5.6/4.5的结果,要求结果保留80位小数