python - 在 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
有什么办法可以以一种不那么冗长和明确的方式来完成我刚才所做的事情吗?谢谢。
解决方案
您可以创建一个 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
推荐阅读
- javascript - 如何使用 cypress 存根 contentwindow.print/使用 cypress 测试 printJS
- csv - 如何对 CSV 文件进行排序
- ruby-on-rails - 错误 - 找不到 'id'=2 的用户 - 无法解决
- python - 如果破折号在字符串内 n 次,则正则表达式匹配
- office365 - docx4j - VariablePrepare.prepare() 中的 NullPointerException
- centos - 允许某些 IP 的端口 IPTABLES
- ruby-on-rails - 在 ActiveStorage 中保存之前获取文件名 - Rails 5.2.1
- python - conda虚拟环境使用的python版本错误?
- javascript - 如何修复 ChangeDetectorRef 导入错误:没有 ChangeDetectorRef 提供程序
- java - 尝试使用 gradle bootrun 编译并获取找不到 spring-boot-gradle-plugin:1.4.0.BUILD-SNAPSHOT