python中大数相除出现精度丢失问题

在我的上一篇文章了,提到了大数相除,数据类型变为float,造成数据丢失,思考了一段时间使用乘法代替除法不出现float即可!
但是使用范围不广,可以作为参考思路:

n=377112609
int(n*(n+1)/2)
#结果为:71106960121949744

因为除以2 相当于乘以5除以10
因此使用乘以5,转换字符串,截取:

n=377112609
def get(n):
    sum=n*(n+1)*5
    return int(str(sum)[0:-1])
get(n)
#71106960121949745

你可能感兴趣的:(python,python,pycharm,开发语言,算法)