跳至正文
View Categories

< 1 min read

高精度计算除法 #

  1. 高精度计算的除法原理
  2. 高精度计算的除法描述
  3. 高精度计算的除法实现

收获 #

学完本节内容,可以初步理解并掌握高精度计算的除法实现。

高精度计算的除法原理 #

在一般的计算中,整数之间的除法可以直接通过取整(//)或者取余(%)来实现。
要实现高精度的计算,主要体现在保留的小数位上面。
小数的除法满足某位数的余数*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. 习题1:简述高精度计算的除法运行过程
  2. 习题2:仿照高精度计算除法,用代码实现-5.6/4.5的结果,要求结果保留80位小数