Python math.arctan() 错误的结果?

Python math.arctan() wrong result?

我正在使用 python shell 作为计算器,但我不知道为什么它不能处理 -28/96 作为 atan 函数的输入:

我的问题是: 为什么这是错误的?

-28/96 是 -1 in python 2(整数除法是整数的默认值)

把它变成 -28/96.0 你会得到你想要的结果。

(或切换到python 3)

顺便说一句:3.14 是 Pi 的一个非常糟糕的近似值,除非你喜欢卵形圆圈:)

改用math.pi

(我刚看到你第一次写的是28.0/96,没错!你的潜意识已经意识到了这个错误:))

Python 处理正确。 Python将“-28/96”解释为int除以int,所以return是“-28/96”的前一个最大整数,即-1。您需要的是“-28.0/96”,然后 python 2.7 会将表达式解释为浮点除法并按您的意愿处理。

此外,相同的表达式将 return 一个双精度浮点数 python 3,即 "-0.2916666666666667"。

查看-28/96的结果:

>>> -28/92
-1
>>> math.atan(-1)
-0.7853981633974483

所以python对整数使用整数除法,而不是浮点数除法。

>>> math.atan(-28.7/96)
-0.2905008632137447

给出正确的结果