不能在分数上使用int。解决方法?蟒蛇

时间:2013-05-30 15:41:53

标签: python python-3.x

我正在从CSV中随机加载到类中。我需要系统将其中一个值视为数字,而不是用于计算的字符串。这适用于整数。

class Weapon:
    def __init__ (self, name, value, damage, weight, properties, catagory, description):
        self.name = name
        self.value = int(value)
        self.damage = damage
        self.weight = weight
        self.properties = properties
        self.catagory = catagory
        self.description = description

我有一个问题,如果我尝试在分数上使用int(例如0.05),我会收到以下错误:

    self.value = int(value)
ValueError: invalid literal for int() with base 10: '0.05'

我可以使用什么代替Int,或者使用int来使其工作?

2 个答案:

答案 0 :(得分:4)

使用int(float(value))首先将字符串解析为float,然后转换为int

但当然,0.05将缩减为0。如果这不合适,请使用float(value)

答案 1 :(得分:1)

使用

from decimal import Decimal
int(Decimal(value))

不要使用花车,花车很难看。