2015-05-13 4 views
6

Sehr einfache Frage: in meinem python 2.7 Code Ich habe Situation etwa wie folgt:Betrieb 10 ** (- 9) in Python richtig, aber falsch in Cython

b=5.0*10**(-9) 
a=9 
print(a) 
c=a/(1.0*b) 

der Code ausgeführt wird in python/spyder (64 Bit), aber nicht in Cython aufgrund einer Division durch 0 Schwimmers die gedruckte Zahl ist 0. Wenn I

b=0.000000005 

die Division ist in Ordnung und die gedruckte Zahl, zu definieren. Was ist der Fehler?

Antwort

5

Ich kann Ihren Fehler mit cython 0.22 reproduzieren und ich denke, dass dieser Fehler zu diesem thread bei cython-users verwandt ist.

Es scheint, dass cython in Schwierigkeiten gerät, wenn 10**-9 berechnet wird. Wenn Sie stattdessen 10**-9.0 verwenden, funktioniert alles einwandfrei.

Beachten Sie, dass Sie loswerden den Fehler bekommen konnte und das Code-Snippet prettify durch 5.0*10**(-9) durch 5e-9 ersetzen.

Trotzdem scheint dies ein Fehler in cython und nicht in Ihrer Code-Basis.

Verwandte Themen