Sympy不处理浮点数

2024-05-01 22:10:04 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上我写了这个代码。。你知道吗

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”无效。有人能解释为什么会发生这种情况吗……有人能告诉我解决方法吗……我需要一个解决这个问题的方法

注意:上面的代码只是实际代码的一部分…我必须以同样的方式运行它…所以有人能帮我处理这个数字吗?你知道吗

提前谢谢


Tags: 方法答案代码answerimportnumber方式情况
3条回答

用符号代替数字(如有必要,在末尾用符号代替):

>>> from sympy import *
>>> number = Symbol('5.62527e-11')
>>> f = sympy.Symbol('f');
>>> sympy.solve(Eq(f,number),f)
[5.62527e-11]

浮点数的局限性在于它们只能精确到小数点后的某个位置。我对你的问题很好奇,发现https://docs.python.org/3/tutorial/floatingpoint.html

相关问题 更多 >