基本上我写了这个代码。。你知道吗
import sympy
number = 5.62527e-11;
f = sympy.Symbol('f');
answer = sympy.solve(Eq(f,number),f);
print(answer);
正如所料,答案是“5.62527e-11”
但是当我把“5.62527e-11”改成“5.62527e-67”并运行相同的代码时…我得到了 [0.0]作为输出,这很尴尬……它对“e-11”有效,但对“e-67”无效。有人能解释为什么会发生这种情况吗……有人能告诉我解决方法吗……我需要一个解决这个问题的方法
注意:上面的代码只是实际代码的一部分…我必须以同样的方式运行它…所以有人能帮我处理这个数字吗?你知道吗
提前谢谢
用符号代替数字(如有必要,在末尾用符号代替):
浮点数的局限性在于它们只能精确到小数点后的某个位置。我对你的问题很好奇,发现https://docs.python.org/3/tutorial/floatingpoint.html
这是SymPy的一个错误。见https://stackoverflow.com/a/22574099/161801和https://github.com/sympy/sympy/issues/7322。你知道吗
相关问题 更多 >
编程相关推荐