En effet, les intermédiaires sont un ordre de grandeur différent:
0.3333333333333333 * 1
#>>> 0.3333333333333333
0.3333333333333333 * 7
#>>> 2.333333333333333
Cela signifie que le premier sera arrondi à une 8x plus grande granularité que la seconde. En raison de repr
Python être joli et arrondi à la décimale la plus proche qui évalue exactement au point flottant, cela se manifeste par une différence de 10x dans la granularité.
Pour comparer visuellement:
0.3333333333333333
2.333333333333333
Voyez comment ils ont le même nombre de chiffres significatifs, mais un nombre différent de décimales. Lorsque vous faites number - multiplication
, vous finissez par "décomposer" cette valeur, donc elle se termine avec plus d'erreur qu'avant en termes relatifs, bien que l'erreur exacte (absolue) soit la même.
C'est exactement la précision arbitraire que votre IDE décide de rapporter. Si vous souhaitez rapporter à une précision spécifique, spécifiez-le manuellement. – CoryKramer
Oui. Quelle est ta question? Si vous comptez sur un nombre spécifique de six dans le résultat, vous êtes sur un terrain très fragile. – Borodin
S'il vous plaît, quelqu'un connaît-il la ressource * à virgule flottante * habituelle à laquelle lier? – Borodin