写一段Python程序,输入两个浮点数num1, num2,表示为字符串,返回两个浮点数的高精度和。不能使用decimal
时间: 2024-05-05 12:15:30 浏览: 204
python基础语法.md
这里是一个Python程序,可以实现输入两个浮点数num1和num2,将它们转换为高精度数并返回它们的和:
```python
def add(num1, num2):
# 将字符串转换为列表
num1_list = list(num1)
num2_list = list(num2)
# 将小数点位置找出来
dot1 = num1_list.index('.')
dot2 = num2_list.index('.')
# 将小数点删除并反转列表
num1_list.pop(dot1)
num2_list.pop(dot2)
num1_list.reverse()
num2_list.reverse()
# 补齐小数位数
if dot1 > dot2:
num2_list += ['0'] * (dot1 - dot2)
else:
num1_list += ['0'] * (dot2 - dot1)
# 初始化结果列表和进位
result_list = []
carry = 0
# 逐位相加
for i in range(len(num1_list)):
digit_sum = int(num1_list[i]) + int(num2_list[i]) + carry
carry = digit_sum // 10
result_list.append(str(digit_sum % 10))
# 如果有进位就加上
if carry > 0:
result_list.append(str(carry))
# 将结果反转并插入小数点
result_list.reverse()
result_list.insert(len(result_list) - dot1, '.')
# 将结果转换为字符串并返回
return ''.join(result_list)
```
这个程序首先将输入的浮点数转换为字符串列表,然后找出小数点位置,将小数点删除并反转列表。接着,程序补齐小数位数,并初始化结果列表和进位。然后程序逐位相加,如果有进位就加上。最后,程序将结果反转并插入小数点,将结果转换为字符串并返回。
阅读全文