1

我正在将 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 来让它工作?

4

2 回答 2

4

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

但是当然,然后0.05会减少到0。如果您不满意,请使用float(value).

于 2013-05-30T15:43:18.757 回答
1

利用

from decimal import Decimal
int(Decimal(value))

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

于 2013-05-30T15:44:06.173 回答