【发布时间】:2017-03-26 04:42:38
【问题描述】:
我要计算这个表达式:
(1 + 1 / math.inf) ** math.inf,
应该评估为e。但是 Python 返回 1。这是为什么呢?
=====更新========
我在这里要做的是从用户的输入中得出有效的年利率,APR(年百分比率)。
def get_EAR(APR, conversion_times_per_year = 1):
return (1 + APR / conversion_times) ** conversion_times - 1
我希望这个表达式也适用于连续复利。是的,我知道我可以编写 if 语句来区分连续复利和正常情况(然后我可以直接使用常量 e),但我更喜欢集成方式。
【问题讨论】:
-
限制的计算在python中没有实现,为此你可以使用sympy:sympy.org/en/index.html
-
您可以使用 www.wolframalpha.com 进行计算
-
您应该再次了解限制。这不像您直接替换该值。
** math.inf是什么意思?这在普通算术中没有意义。与1/0或1/math.inf相同。它们必须使用限制来解决 -
感谢您的意见!我刚刚更新了我的问题以澄清我的意图,并请建议我是否可以实现这一目标。 @eyllanesc
-
我认为最好使用 if 语句。如果
conversion_times太大(尽管对于您的应用程序来说大得不切实际),您的浮点运算可能会开始出现舍入错误。
标签: python python-3.x math calculus