Maison  >  Article  >  développement back-end  >  Comment garantir un comportement d'arrondi cohérent pour les nombres à moitié flottants en Python ?

Comment garantir un comportement d'arrondi cohérent pour les nombres à moitié flottants en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-17 15:52:02846parcourir

How to Ensure Consistent Rounding Behavior for Half Float Numbers in Python?

Rounding Half Float Numbers: Understanding Rounding Behavior and Alternative Approaches

When rounding half float numbers using the round() function, programmers may encounter unexpected behavior. As demonstrated in the example code, floating values are rounded to the nearest even number instead of being consistently rounded up. This is attributed to the "rounding half to even" behavior documented in the Numeric Types section for round().

To achieve accurate rounding, it is recommended to utilize the decimal module, which provides control over rounding strategies. By specifying the ROUND_HALF_UP rounding strategy within a local context, you can ensure that values are consistently rounded up from half. The following code snippet illustrates this approach:

<code class="python">from decimal import localcontext, Decimal, ROUND_HALF_UP

with localcontext() as ctx:
    ctx.rounding = ROUND_HALF_UP
    for i in range(1, 15, 2):
        n = Decimal(i) / 2
        print(n, '=&gt;', n.to_integral_value())</code>

Output:

0.5 =&gt; 1
1.5 =&gt; 2
2.5 =&gt; 3
3.5 =&gt; 4
4.5 =&gt; 5
5.5 =&gt; 6
6.5 =&gt; 7

By employing this approach, you gain precise control over rounding behavior and can avoid unexpected outcomes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn