簡體   English   中英

Sympy不處理浮點數

[英]Sympy not handling float numbers

基本上我寫了這段代碼..

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

使用符號代替數字(並在必要時在末尾替換符號):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM