Sympy没有处理浮点数

时间:2014-09-23 14:55:41

标签: python sympy

基本上我写了这段代码..

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"有人可以请说明为什么会发生这种情况..有人可以告诉我解决方案......我需要一个解决这个问题的方法

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

提前致谢

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

浮点数的限制是它们只能精确到小数位数。我自己对你的问题感到好奇并找到https://docs.python.org/3/tutorial/floatingpoint.html

答案 2 :(得分:0)

使用符号代替数字(如有必要,请在最后替换):

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