Python浮点运算给出复杂的结果

问题描述 投票:2回答:1
eq = (((1 - (2 * normal_rpm - s8) ** s1) * s2 * math.sin(normal_rpm ** s3 / s4) * (1 - math.sin((normal_rpm + s5) ** (2) + 5) + s6) / (s7))) + 0.67

是我对这个变量的计算公式,其中S变量是浮动的。这有时会返回这样的结果

(0.6806708980989302+0.008606807113252896j)

我不能在进一步的数学中使用这个结果,我需要一个浮点数,即使我必须将答案四舍五入一点。

python variables operation
1个回答
3
投票

这不是一个四舍五入的问题,而是你把一个负数提高到一个小数指数(比如你要取-5的平方根)。

例如,你要把负数升为小数指数(例如,你要取-5的平方根)。

 In [2]: (-5)**0.5                                                                     
 Out[2]: (1.3691967456605067e-16+2.23606797749979j)

如果你不能接受复杂的数字作为结果 那么唯一的出路就是当这种情况发生时发出一个错误(没有一个实数可以乘以自己,或者接近-5)。

如果这不是你所期望的,你应该仔细检查公式或前面的公式,因为可能有一个错别字,或者可能有一些先决条件,你需要在应用这个公式之前检查。

© www.soinside.com 2019 - 2024. All rights reserved.