PROJET AUTOBLOG


Sam & Max: Python, Django, Git et du cul

Site original : Sam & Max: Python, Django, Git et du cul

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Calcul décimaux avec norme IEEE 754/854 en Python

dimanche 20 octobre 2013 à 22:25

Peut-on faire titre plus chiant que celui-là, je vous le demande ?

Toujours est-il que cet article n’interessera que des gens parfaitement chiants, à savoir des scientifiques tatillons, mais je sais qu’il y en a dans notre lectorat alors on va leur jeter un os.

Bref, vous savez que la division par zéro en Python, ça lève une exception :

>>>  1 / 0
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-1-b710d87c980c> in <module>()
----> 1 1 / 0
 
ZeroDivisionError: integer division or modulo by zero

Certains esprits chagrins n’aiment pas ce comportement, et voudraient, par exemple, que cela retourne l’infini. Après tout, pourquoi pas.

N’y a-t-il rien qu’on puisse faire pour calmer la rétention anale qui se prépare à cette déconvenue ?

Bien sûr que si, on parle de Python voyons !

>>> from decimal import setcontext,ExtendedContext, Decimal 
>>> setcontext(ExtendedContext)
 
>>> 1 / Decimal(0)
Infinity
>>> -1 / Decimal(0)
-Infinity

Voilà. Si vous êtes une personne normale et manipulez des objets concrets comme des sous, des joujoux, des choux non additionnés avec des carottes ou des hashtags, les réglages par défaut sont parfaits. Mais si vous êtes un fan de scipy, traitant des matrices par bottes de douze, ça peut servir.

Spéciale dédicace à mes amis au CNRS. Bisoux partout !

flattr this!

Error happened! 0 - count(): Argument #1 ($value) must be of type Countable|array, null given In: /var/www/ecirtam.net/autoblogs/autoblogs/autoblog.php:428 http://ecirtam.net/autoblogs/autoblogs/sametmaxcom_a844ada43a979e3b1395ab9acb6afafb84340999/?Calcul-d%C3%A9cimaux-avec-norme-IEEE-754-854-en-Python #0 /var/www/ecirtam.net/autoblogs/autoblogs/autoblog.php(999): VroumVroum_Blog->update() #1 /var/www/ecirtam.net/autoblogs/autoblogs/sametmaxcom_a844ada43a979e3b1395ab9acb6afafb84340999/index.php(1): require_once('...') #2 {main}