Los cálculos de Cython son incorrectos.

Implementé la serie Madhava – Leibniz para calcular pi en Python, y luego en Cython para mejorar la velocidad. La versión de Python:

from __future__ import division
pi = 0
l = 1
x = True
while True:
    if x:
        pi += 4/l
    else:
        pi -= 4/l
    x = not x
    l += 2
    print str(pi)

La versión de Cython:

cdef float pi = 0.0
cdef float l = 1.0
cdef unsigned short x = True
while True:
    if x:
        pi += 4.0/l
    else:
        pi -= 4.0/l
    x = not x
    l += 2
    print str(pi)

Cuando detuve la versión de Python, había calculado correctamente pi a 3.141592. La versión de Cython finalmente terminó en 3.141597 con algunos dígitos más que no recuerdo (mi terminal se bloqueó) pero eran incorrectos. ¿Por qué los cálculos de la versión de Cython son incorrectos?

Respuestas a la pregunta(3)

Su respuesta a la pregunta