Python 浮点数特性及转换为更小类型

5 投票
2 回答
692 浏览
提问于 2025-04-16 13:58

我想搞清楚在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

撰写回答