round float python algorithm pandas floating-point ieee-754

round - python float precision



En el argumento float_precision para pandas.read_csv (1)

Preguntaste sobre los algoritmos reales, lo más cercano que puedo encontrar es: https://github.com/pandas-dev/pandas/blob/master/pandas/_libs/parsers.pyx#L492

Esto se toma de una respuesta relacionada, felicitaciones a MaxU ( comprensión de pandas.read_csv () análisis flotante )

Ordinary: double_converter_nogil = xstrtod High: double_converter_nogil = precise_xstrtod Round-Trip: double_converter_withgil = round_trip

Desde aquí, estás en C-land. También preguntaste por qué los pandas usan C: las rutas de código críticas están escritas en Cython o C.

La documentación para el argumento en el título de esta publicación dice:

float_precision : cadena, por defecto Ninguno

Especifica qué convertidor debe usar el motor C para valores de coma flotante. Las opciones son Ninguno para el convertidor ordinario, alto para el convertidor de alta precisión y round_trip para el convertidor de ida y vuelta.

Me gustaría obtener más información acerca de los tres algoritmos mencionados, preferiblemente sin tener que profundizar en el código fuente 1 .

P: ¿Estos algoritmos tienen nombres que puedo buscar en Google para saber exactamente qué hacen y cómo difieren?

(Además, una pregunta secundaria: ¿qué es exactamente "el motor C" en este contexto? ¿Es eso algo específico de Pandas, o algo de Python? ¿Nada de lo anterior?)

1 Al no estar familiarizado con la base de código en cuestión, espero que me lleve mucho tiempo encontrar el código fuente relevante. Pero incluso suponiendo que logro encontrarlo, mi experiencia con este tipo de algoritmo es que sus implementaciones están tan optimizadas, y en un nivel tan bajo, que sin una descripción de alto nivel es realmente difícil, al menos para mí, sigue lo que está pasando.