TypeError: ‘decimal.Decimal‘ object cannot be interpreted as an integer

在Python中遇到TypeError: 'decimal.Decimal' object cannot be interpreted as an integer的问题,通过将range()函数中的数值转换为int类型解决了报错。虽然运行时不再出错,但正确性仍有待验证。
摘要由CSDN通过智能技术生成

这里直接翻译了一下。。。

TypeError: 'decimal.Decimal'对象不能被解释为一个整数


然后把range()函数中用到的num,直接定义为int类型,就好像OK了?

这算是解决了这个问题了吗?反正运行起来是没报错了,也不知道对不对,笑哭。

print("——拼手气红包——")
from decimal import*
import random
total = input("请输入红包总金额:")
num = input("请输入抢红包人数:")
amount_list = []
total = Decimal(total)
num = Decimal(num)
total = total * 100
total_min = 1
total_min = Decimal(total_min)
re_amount = total
pe = num
print(type(total_min),type(re_amount),type(pe))
for i in range(num - 1):
    pe -= 1
    print(pe)
    amount = random.randint(1,re_amount - (total_min * pe))
    re_amount = re_amount - amount
    print("每一次随机金额:",amount,"\n每一次剩余金额:",re_amount)

这是range()函数定义为整形后:

反正运行起来是没报错了。。。。

print("——拼手气
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值