python自定义加减乘除函数实现加减乘除_Python实现高精度加减乘除运算

更新时间:2023-05-03 18:10:56 阅读: 评论:0

python⾃定义加减乘除函数实现加减乘除_Python实现⾼精度
加减乘除运算
Python实现⾼精度加减乘除运算
Mkdir700 2019 年 12 ⽉ 12 ⽇
<
今天实验课,要求的这个作业
## 完整代码 ##
⽬前完整写完了加法
```python
class High_Precision_Operation(object):
# 加法
def p_add(lf, a, b):
sign = Fal
a_list_int, a_list_float, b_list_int, b_list_float = lf.modify(a, b)
a_list_int, b_list_int = a_list_int[::-1], b_list_int[::-1]
# 整数部分相加
for i in range(len(b_list_int)-1):
a_list_int[i] = a_list_int[i] + b_list_int[i]
if a_list_int[i] >= 10:
a_list_int[i] %= 10
a_list_int[i+1] += 1
el:
a_list_int[i+1] += 0
# ⼩数部分相加
for i in range(len(b_list_float)-1,-1,-1):
a_list_float[i] = a_list_float[i] + b_list_float[i]
if a_list_float[i] >= 10:
a_list_float[i] %=10
a_list_float[i-1] += 1
if a_list_float[0] + b_list_float[0] >=10:
a_list_float[i] %= 10
sign = True
num = lf.int_float(a_list_int, a_list_float)
if sign == True:
num + 1
print(num)
# 无人岛生存 减法
def p_sub(lf,majiang a, b):
sign = Fal
sign锦绣丹华 1 = Fal
# if a < b:
# a, b = b, a
# sign = True
a_list_int, a_list_float, b_list_int, b_list_float = lf.modify(a, b) a_list_int, b_list_int = a_list_int[::-1], b_list_int[::-1]
# 整数部分相减
for i in range(杀鸡用牛刀 len(a_list_int)):
a_list_int[i] = a_list_int[i] - a_list_int[i]
if a_list_int[i] < 0:
a_list_int[i] = 10 + a_list_int[i]
a_list_int[i+1] -= 1
# ⼩数部分相减
for i in range(len(a_list_float)-1,-1,-1):
a_list_float[i] = a_list_float[i] - a_list_float[i]
if a_list_float[i] < 0:
a_list_float = 10 + a_list_float[i]
a_list_float[i-1] -= 1
if a_list_float[0] - b_list_float[0] < 0:
a_list_float[i] = 10 + a_list_float[i]
sign1 = True
a_list_int = a_list_int[::-1]
num = lf.int_float(a_list_int, a_list_float)
if sign1 == True:
num -= 1
# if sign == True:
print(num)
# 乘法
def p_multi(lf,a, b):
pass
# 修正统⼀数字在列表中的长度
def modify(lf, a, b):
# 将数字转换成字符串
a_list, b_list = '00' + str(a), '00' + str(b) # 字符串转为列表
a_list_int, a_list_float = a_list.split(".")
b_list_int, b_list_float = b_list.split(".")
a_list_int, a_list_float = lf.list2int(list(a_list_int)), lf.list2int(list(a_list_float)) # 将列表内的字符转为数字b_list_int, b_list_float = lf.list2int(list(b_list_int)), lf.list2int(list(b_list_float)) # 将列表内的字符转为数字# ⽐较两个列表的长度
a_list_int, b_list_int = lf.differ_int(len(a_list_int), len(b_list_int), a_list_int, b_list_int)
a_list_float, b_list_float = lf.differ_float(len(a_list_float), len(b_list_float), a_list_float, b_list_float)
prin朋友圈说说的好句子 t(a_list_int, a_list_float)
print(b_list_int, b_list_float)
# a_list, b_list = a_list[::-1], b_list[:春节诗句古诗 :-1]
return a_list_int, a_list_float, b_list_int, b_list_float
# 将两个列表对齐-整数部分
def diff毛肚怎么吃 er_int(lf, l1, l2, la, lb):
if l1 > l2:
differ = l1 - l2
lb = lb[::-1]
for i in range(differ):
lb.append(0)
lb = lb[::-1]
elif l1 < l2:
differ = l2 - l1
la = la[::-1]
for i in range(differ):
la.append(0)
la = la[::-1]
# 将两个列表对齐-⼩数部分
def differ_float(lf, l1, l2, la, lb):
if l1 > l2:
differ = l1 - l2
for i in range(differ):
lb.append(0)
elif l1 < l2:
differ = l2 - l1
for i in range(differ):
la.append(0)
return la, lb
# 将列表内的数组字符转化成数字
def list2int(lf, list):
for i in range(len(list)):
list[i] = int(list[i])
return list
# 将⼀个数字列表转换为⼀个int类型的数字def list2num(lf, list):
num = 0
for i in list:
num = num * 10 + i
return num
def int_float(lf, int, float):
int = lf.list2num(int)
length = len(float)
float = lf.list2num(float)
float = float * (0.1 ** length)
return int+float
```
## 加法 ##
![Animation.gif][1]
```python
def p_add(lf, a, b):
a_list_int, a_list_float, b_list_int, b_list_float = lf.modify(a, b) a_list_int, b_list_int = a_list_int[::-1], b_list_int[::-1]
# 整数部分相加
for i in range(len(b_list_int)-1):
a_list_int[i] = a_list_int[i] + b_list_int[i]
if a_list_int[i] >= 10:
a_list_int[i] %= 10
a_list_int[i+1] += 1
el:
a_list_int[i+1] += 0
# ⼩数部分相加
for i in range(len(b_list_float)-1,-1,-1):
a_list_float[i] = a_list_float[i] + b_list_float[i]
if a_list_float[i] >= 10:
a_list_float[i] %=10
a_list_float[i-1] += 1
if a_list_float[0] + b_list_float[0] >=10:
a_list_float[i] %= 10
sign = True
a_list_int = a_list_int[::-1]
num = lf.int_float(a_list_int, a_list_float)
if sign == True:
num + 1
print(num)
```

本文发布于:2023-05-03 18:10:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/854398.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:列表   数字   实现   部分
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图