Python:带三角函数的小数

标签 python math floating-point decimal trigonometry

我遇到了一个小问题,看看:

>>> import math
>>> math.sin(math.pi)
1.2246467991473532e-16

这不是我在微积分课上学到的(实际上是 0)

那么,现在,我的问题是:

我需要使用 Python 执行一些繁重的三角函数微积分。我可以使用什么库来获取正确的值?

我可以使用十进制吗?

编辑:

对不起,我的意思是另外一回事。

我想要的是一些方法:

>>> awesome_lib.sin(180)
0

或者这个:

>>> awesome_lib.sin(Decimal("180"))
0

我需要一个可以很好地进行三角函数计算的库。大家都知道 sin 180° 是 0,我也需要一个可以做到这一点的库。

最佳答案

1.2246467991473532e-16 接近于 0 -- 小数点和第一个有效数字之间有 16 个零 -- 与 3.1415926535897931(math.pi) 接近圆周率。答案精确到小数点后十六位!

因此,如果您希望 sin(pi) 等于 0,只需将其四舍五入到合理的小数位数即可。 15 对我来说看起来不错,对于任何应用程序来说应该足够了:

print round(math.sin(math.pi), 15)

关于Python:带三角函数的小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10854229/

相关文章:

c++ - __int64 在 32 位机器上?

floating-point - 反复规范化 IEEE 浮点向量会使其发生变异吗?

python - 带参数的装饰器 : Would this be a better way?

python - 使用 Boost.Python 包装和传递 HWND

python - 绘制 Pandas 数据框列之间的关系

php - 为什么 MySQL 以科学计数法返回一些 float ,而不返回其他 float ?

c - 浮点比较 `a != 0.7`

python - music21:按音符位置将音符写入 MIDI 文件

math - 为什么 ( x & 3 ) 与 ( x mod 4 ) 相同?

math - 生成非常非常大的随机数