我建议先数一数小数点后有多少个数字。然后用整数相乘。例如,你有>>>a = 1111111111.2222222222
>>>b = 2222222222.333333333
那么a的小数点后有10个数字,b的小数点后有9个数字,总共19个。
然后使用
^{pr2}$
那么c就是24691358028395061724320987653925925926,19个数字在小数点之后,所以你的答案a*b将是2469135802839506172.4320987653925925926
通过将c转换成str,可以找到c中小数点的位置
我总结如下:def multi(a, b):
"""
"""
a = str(a)
b = str(b)
num = 0
tmp = a.find('.')
if tmp != -1:
num = num + len(a) - tmp - 1
tmp = b.find('.')
if tmp != -1:
num = num + len(b) - tmp -1
a1 = a.replace(".", "")
b1 = b.replace(".", "")
a1 = int(a1)
b1 = int(b1)
c = a1 * b1
ans = [c, num]
c = str(c)
res = c[:len(c)-num]
tmp = c[len(c)-num:]
res = res + '.' + tmp
return res, ans
两个返回,第一个是str格式的浮点,第二个是由两个数字组成的列表,第一个是整数,第二个是小数点后的数字个数。在
希望这对你有帮助!在