2010-08-05 6 views
1

Voici un exemple pour expliquer ce que je suis sur:py. Decimal mod .: pourquoi drapeaux sur le contexte plutôt que des chiffres

c = Decimal(10)/Decimal(3) 
c = Decimal(10)/Decimal(2) 

Si je fais cela, puis imprimer c, les drapeaux et arrondies sont inexactes élevé. Même si le résultat est précis. Les drapeaux ne devraient-ils donc pas être des attributs de nombres plutôt que le contexte? Ce problème est particulièrement apparent lorsque je programme un long calcul en utilisant une pile.

Pour poser une question plus significative: Comment gérer correctement cette situation? Il semble que je doive garder une trace de tout manuellement. Si j'efface les drapeaux avant les calculs, je perdrais quelques informations sur les nombres calculés avant. Ce qui peut maintenant sembler exact. Ceci est particulièrement gênant lorsque vous travaillez avec des nombres comme 1.0000000154342.

Pour une application critique, il serait vraiment agréable de savoir ce qui est précis et ce qui ne l'est pas. Ce serait aussi bien de ne pas avoir les mauvais drapeaux, juste parce que ça a l'air mauvais.

Nous supposons toujours qu'il y a une bonne raison à cela, que je n'ai pas comprise. Je serais reconnaissant pour une explication.

Répondre