Python 2 Decimal的Sin,cos等?
发布时间:2020-12-20 12:40:22 所属栏目:Python 来源:网络整理
导读:在 Python 2.6中,我发现sqrt(pi)的Decimal等价物是 Decimal(pi).sqrt() 是否有类似sin,cos或其他(反)三角函数的东西? docs只提到了如何计算cos和sin.十进制(pi).cos()不存在,也不存在十进制导入cos 更新:使用默认三角函数的问题是,如果我每次想要计算某些
在
Python 2.6中,我发现sqrt(pi)的Decimal等价物是
Decimal(pi).sqrt() 是否有类似sin,cos或其他(反)三角函数的东西? docs只提到了如何计算cos和sin.十进制(pi).cos()不存在,也不存在十进制导入cos 更新:使用默认三角函数的问题是,如果我每次想要计算某些东西时将它们从float和back转换它就会失败使用Decimal的点. (在每次计算周围输入Decimal都很烦人,但我想我可以做一个包装函数) 解决方法
sin(a)和cos(a)的值仅对于特定角度是有理数(见
http://planetmath.org/encyclopedia/RationalSineAndCosine.html),因此您不能将sin(a)或cos(a)的值存储为Decimal而不会丢失精度.这违背了将sin和cos值转换为Decimal并具有将sin和cos值作为Decimal返回的内置函数的目的.
此外,你不能将所有有理数存储为十进制而不会丢失精度,因为python的小数是(-1)** _ sign * _int * 10 ** _ exp所以有理数的除数必须为10才能使Decimal存储为满精确. 我猜@ carrot-top的mpmath建议或一些数值算法(如Taylor系列近似)是你能得到的最好的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |