Pseudo valor inf
Marcos Sánchez Provencio
rapto en arrakis.es
Dom Mar 21 19:52:43 CET 2004
Marcos Sánchez Provencio escribió:
> Antonio Castro escribió:
>
>> Llevo solo un par de meses con python y he visto que por defecto
>> existe una gestión muy extraña de ciertos desbordamientos con
>> valores reales.
>>
>> Evidentemente dejar que el interprete de python
>> pase un dato real a un pseudo valor infinito de forma
>> automática, transparente y sin mensaje de error alguno
>> a mi no me parece una gran idea.
>>
>> x=9.9e999
>> if 5.5 + x == x:
>> print 'OK: 5.5 + x == x'
>> print 'x=', x
>>
>> ¿ Supongo que este error se puede gestionar de alguna
>> manera no ?
>>
>>
>>
> Este problema viene explicado en
> http://cielito.sindominio.net/~rapto/python/tut/node14.html
>
> ¿Te has encontrado el problema de verdad? Existe un módulo FixedPoint
> para estas cosas.
> http://fixedpoint.sourceforge.net/
>
Bueno, no es del todo adecuado (lo del salto al hiperespa^W infinito no
tiene que ver con el redondeo de coma flotante), pero esto va
>>> import fixedpoint as fp
>>> a=fp.FixedPoint('3e999')
>>> a+0.5==a
False
>>> a+0.5
FixedPoint('3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.50',
2)
Más información sobre la lista de distribución Python-es