我有以下非常简单的数据类:
import dataclasses
@dataclasses.dataclass
class Test:
value: int
Run Code Online (Sandbox Code Playgroud)
我创建了该类的实例,但我使用了一个字符串而不是整数:
>>> test = Test('1')
>>> type(test.value)
<class 'str'>
Run Code Online (Sandbox Code Playgroud)
我真正想要的是强制转换为我在类定义中定义的数据类型:
>>> test = Test('1')
>>> type(test.value)
<class 'int'>
Run Code Online (Sandbox Code Playgroud)
我必须__init__手动编写该方法还是有一种简单的方法来实现此目的?
我正在使用python2数学模块来计算fsum的总和.据我所知,0.1通常不能存储二进制.据我所知math.fsum应该以某种方式解决这个问题.
import math
math.fsum([0.0, 0.1])
#0.1
math.fsum([0.1, 0.1])
#0.2
math.fsum([0.2, 0.1])
#0.30000000000000004
math.fsum([0.3, 0.1])
#0.4
math.fsum([0.4, 0.1])
#0.5
Run Code Online (Sandbox Code Playgroud)
所以math.fsum([0.2,0.1])== 0.3将为False.这应该是这样的吗?难道我做错了什么?
我怎样才能得到0.2 + 0.1 == 0.3为真?