Python 浮点数特性及转换为更小类型
我想搞清楚在Python中,float
到底是什么样的。看起来,Python把浮点数存储在一种叫PyFloatObject
的类型里,这里面包含了一个double
。但是,我该怎么让它像一个32位的浮点数那样工作呢?有没有其他的类型可以用?
2 个回答
1
在Python里,没有一种内置的数据类型是用32位浮点数来表示的。
不过,你可以看看Sven Marnach的回答,里面有一些替代方案。
6
Python内置的float
类型总是使用双精度(除非你自己编译一个特别版本的解释器)。你可以使用array
模块来获取32位浮点数:
a = array.array("f")
这段代码会定义一个32位浮点数的数组。
另外,外部的NumPy库也提供了一个标量的32位浮点数类型,叫做numpy.float32
。