Python 浮点运算给出复数结果
Python float operations give complex result
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变量是浮点数。有时 returns 这样的结果
(0.6806708980989302+0.008606807113252896j)
我不能在进一步的数学运算中使用这个结果,我需要一个浮点数,即使我必须稍微舍入答案。
这不是四舍五入问题,但您将负数计算为小数指数(例如,您正在计算 -5 的平方根)。
例如:
In [2]: (-5)**0.5
Out[2]: (1.3691967456605067e-16+2.23606797749979j)
如果您不能接受复数作为结果,那么唯一其他合乎逻辑的出路是在发生这种情况时引发错误(没有实数乘以自身得出或接近 -5)。
如果这不是预期的,您应该仔细检查它前面的一个或多个公式,因为可能有错字,或者在应用此公式之前您需要检查一些先决条件。
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变量是浮点数。有时 returns 这样的结果
(0.6806708980989302+0.008606807113252896j)
我不能在进一步的数学运算中使用这个结果,我需要一个浮点数,即使我必须稍微舍入答案。
这不是四舍五入问题,但您将负数计算为小数指数(例如,您正在计算 -5 的平方根)。
例如:
In [2]: (-5)**0.5
Out[2]: (1.3691967456605067e-16+2.23606797749979j)
如果您不能接受复数作为结果,那么唯一其他合乎逻辑的出路是在发生这种情况时引发错误(没有实数乘以自身得出或接近 -5)。
如果这不是预期的,您应该仔细检查它前面的一个或多个公式,因为可能有错字,或者在应用此公式之前您需要检查一些先决条件。