gpt4 book ai didi

python - 无论输入类型如何,如何在Python中执行精确计算?

转载 作者:行者123 更新时间:2023-11-30 23:35:57 26 4
gpt4 key购买 nike

我需要以尽可能高的精度进行计算,无论传递的参数是整数、 float 还是任何数字。我能想到的一种方法是:

import numpy as np
def foo(x, y, z)
a = (np.float64)0
a = x + y * z

我可以看到这样的几个问题:1)我认为我需要转换输入,而不是结果才能工作2)看起来很丑(第一个操作是多余的C风格声明)。

如何以Python方式以最高可用精度执行所有计算,然后以最高可用精度(IMO numpy.float64)存储结果?

最佳答案

对我来说,明显的答案是十进制,除非函数需要非常快。

import decimal
# set the precision to double that of float64.. or whatever you want.
decimal.setcontext(decimal.Context(prec=34))
def foo(x, y, z)
x,y,z = [decimal.Decimal(v) for v in (x,y,z)]
a = x + y * z
return a # you forgot this line in the original code.

如果你想要一个传统的 64 位 float ,你可以将返回值转换为: 返回 float (a)

关于python - 无论输入类型如何,如何在Python中执行精确计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16892669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com