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

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


Gracias Roberto.
Habrá alguna forma de ahorrame el string formatting?

2014-02-27 11:38 GMT-03:00 Roberto Alsina <ralsina en netmanagers.com.ar>:
> On 27/02/14 11:34, Enrique Martín wrote:
>>
>> 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.
>>
>
> usá decimal:
>
>>>> d=Decimal("41.3")
>>>> float(d)
> 41.3
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar


More information about the pyar mailing list