基本上我写了这段代码..
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”并运行相同的代码时,...i会得到0.0作为输出,这很尴尬...it对"e-11“有效,但对"e-67”无效。有人能解释一下为什么会发生这种情况吗..and有人能告诉我这个问题的解决方案...i需要一个解决方案吗
注意:上面的代码只是实际代码...and的一部分,我必须以同样的方式运行它,...so,有人能帮我处理这个数字吗?
提前感谢
发布于 2014-09-24 02:10:53
发布于 2014-09-23 23:18:30
浮点数的局限性是它们只能精确到小数点的某一位。我自己对你的问题很好奇,找到了https://docs.python.org/3/tutorial/floatingpoint.html
发布于 2014-09-25 09:11:40
使用符号而不是数字(如果需要,请在末尾替换它):
>>> from sympy import *
>>> number = Symbol('5.62527e-11')
>>> f = sympy.Symbol('f');
>>> sympy.solve(Eq(f,number),f)
[5.62527e-11]https://stackoverflow.com/questions/25998314
复制相似问题