首页 > 解决方案 > 在 Python 中自动转换为 32 位

问题描述

我希望在 Python 中模拟 32 位环境。因此,我必须让所有操作都像发生在 32 位机器上一样发生。
示例 -
进行以下随机计算:

1.2229 * ((290 * (7323412.64 - 0.994 * 50)) / (1000 * (-22.9 + 273.15))) / 170

输出是:61.04871026396052

现在,如果我使用 numpy 转换每个参数,结果会有些不同(必须转换每个参数,因此在默认的 64 位中不会发生任何操作):

np.float32(1.2229) * ((np.float32(290) * (np.float32(7323412.64) - 
np.float32(0.994) * np.float32(50))) / (np.float32(1000) * 
(np.float32(-22.9) + np.float32(273.15)))) / np.float32(170)  

输出是:61.048714

有什么办法可以以一种不那么冗长和明确的方式来完成我刚才所做的事情吗?谢谢。

标签: pythonnumpy

解决方案


您可以创建一个 32 位类型的数组:

a=np.array([1.2229,290,7323412.64, 0.994,50,1000,-22.9,273.15,170],dtype=np.float32)

然后:

>>> a[0] * ((a[1] * (a[2] - a[3] * a[4])) / (a[5] * (a[6] + a[7]))) / a[8]
61.048714

推荐阅读