Closed mbaudin47 closed 4 years ago
De plus, int(round()) serait plus approprié que ajouter 0.5.
Je ne crois pas car le 0.5 ne sert pas à faciliter l'arrondi mais à réduire les effets de bord.
En effet, le but est de calculer l'année de naissance des gens arrivant au retraite au milieu d'une année donnée et non au début de cette année. Évidemment, les gens peuvent arriver à la retraite à n'importe quelle période de l'année, mais l'erreur commise de cette façon est moindre que celle qui serait commise si on supposait que tout le monde arrive à la retraite en début d'année, ce qui serait le cas sans le terme +0.5
Voici ce qu'en dit le COR :
L’espérance de vie à 60 ans prise en compte est celle de la génération qui atteint l’âge effectif moyen de départ à la retraite renseigné en milieu de l’année considérée (le terme ½ dans l’équation correspondant au calcul en milieu d’année).
A mon avis, il faudrait cependant remplacer int() par round().
Ok je comprends. En fait, dans l'équation arrondi(aaaa + 1/2 – A), ce n'est pas l'arrondi de aaaa – A. L'équation considère l'année aaaa + 1/2 c'est à dire le milieu de l'année.
Du coups je comprends mieux l'exemple :
"Par exemple, si l’on renseigne dans le simulateur un âge effectif moyen de départ à la retraite égal à 63,5 ans en 2030, on utilisera, pour calculer la durée de vie passée à la retraite à cette date, l’espérance de vie à 60 ans de la génération née en : 2030+1/2-63,5 = 1967."
Est-ce qu'on est d'accord pour dire que, si l'éspérance de vie était une fonction régulière (par exemple un interpolateur) au lieu d'une table, ce problème serait résolu ?
Est-ce qu'on est d'accord pour dire que, si l'espérance de vie était une fonction régulière (par exemple un interpolateur) au lieu d'une table, ce problème serait résolu ?
Je ne suis pas sûr qu'il serait résolu car on ne connaîtrait quand même pas le moment précis du départ à la retraite, dont devrait être déduit le moment précis de la naissance qui serait l'entrée de la fonction régulière "espérance de vie à 60 ans".
Les deux lignes suivantes :
https://github.com/brunoscherrer/retraites/blob/5a0696dd54d5aab71db8b79244a9e2d3426d9e48/retraites/SimulateurRetraites.py#L855
pourraient être améliorées.
Le code pourrait utiliser les noms suivants:
De plus, int(round()) serait plus approprié que ajouter 0.5.