[pyar] Transformación de floats de 4-bytes a 8-bytes

Enrique Martín enri57ar en gmail.com
Jue Feb 27 11:34:01 ART 2014


Hola a todos, Les cuento:

MSAccess tiene un tipo de datos "Single" que es un float de 4-bytes, ej:
a) 41.07
b) 41.211
c) 41.3

Cuando los saco tanto por pyodbc, mdbtools (windows y linux x86_64)
obtengo las siguiente reprensentaciones:

a) 41.0699996948, 4.10699997e+01, 41.070000
b) 41.2109985352, 4.12109985e+01, 41.210999
c) 41.2999992371, 4.12999992e+01, 41.299999

para volver a la representacion original tengo que hacer esto, en los
9 casos anteriores funciona:

>>> "%g" % 41.0699996948
'41.07'
>>> "%g" % 4.12109985e+01
'41.211'
>>> "%g" % 41.299999
'41.3'

pero en algunos casos cuando los paso a floats de python (8-bytes) pasa esto:

>>> float("41.211")
41.210999999999999
>>> float("41.3")
41.299999999999997
>>>

A alguien se le ocurre como pasar de los floats de 4-bytes a los
floats de python con la misma "representacion"?

PD: Si, los calculos que hago tienen que ser muy precisos, asi es el
requerimiento.


Gracias!!!


More information about the pyar mailing list