web-dev-qa-db-fra.com

Normes d'arrondissement - Calculs financiers

Je suis curieux de l’existence de «normes d’arrondi» en ce qui concerne le calcul des données financières. Mon objectif initial est d’arrondir les données uniquement lorsque les données sont présentées à l’utilisateur (couche présentation).

Si des données "arrondies" sont ensuite utilisées pour des calculs ultérieurs, utilisez-vous le chiffre "arrondi" ou le chiffre "brut"? Est-ce que quelqu'un a un conseil?

Veuillez noter que je connais différentes méthodes d'arrondissement, à savoir l'arrondissement des banquiers, etc.

26
Guamez

La première et la plus importante des règles: utiliser un type de données décimal , jamais des types à virgule flottante binaire.

La date à laquelle l’arrondi doit être effectué est régie par des règles, telles que la conversion entre l’euro et les monnaies nationales remplacées.

En l’absence de telles règles, je ferais tous les calculs avec une grande précision et arrondirais uniquement pour la présentation, c’est-à-dire que je n’utiliserais pas de valeurs arrondies pour les calculs suivants. Cela devrait donner la meilleure précision globale.

13

Je viens de demander à un programmeur d'ordinateur central gris de la société de logiciels financiers pour laquelle je travaille, et il a dit qu'il n'y avait pas de norme bien connue et que cela dépendait de la pratique des programmeurs. 

Les statisticiens sont au courant du problème de l'arrondi depuis au moins 1906, mais il est difficile de trouver une norme financière le confirmant. 

Selon this sit e, le "rapport de la Commission européenne L'introduction de l'euro et l'arrondi des montants en monnaie " suggère qu'il n'existait auparavant aucune approche standard en matière d'arrondissement dans la banque. " 

En général, utilisez un mode d'arrondi symétrique, quelle que soit la base sur laquelle vous travaillez (base 2 ou base 10).

Cela évitera les biais systématiques lors des calculs.

Un tel mode est Round-Half-To-Even, aussi connu sous le nom de "arrondi des banquiers".

Utilisez des outils de langage qui vous permettent de spécifier l’explicite du contexte numérique, y compris les modes d’arrondi et de troncature. Par exemple, le module decimal de Python. Les hypothèses implicites faites par la bibliothèque C pourraient ne pas être appropriées pour vos calculs.

_ { http://en.wikipedia.org/wiki/Rounding#Rounding_to_integer } _

12
Joe Koberg

Je n'ai pas vu l'existence de "l'unique norme pour les gouverner tous" - il existe un certain nombre de règles d'arrondi (comme vous l'avez mentionné), et elles semblent entrer en jeu en fonction du code de secteur/client/et de devise ( http : //fr.wikipedia.org/wiki/ISO_4217 ) - comme tout le monde n'utilise pas 2 places après la décimale, le problème devient encore plus compliqué. En fin de compte, votre client doit spécifier les règles qu'il souhaite implémenter ...

3
chrismh

Pensez à utiliser des entiers mis à l'échelle.

En d'autres termes, stockez des nombres entiers de centimes au lieu de fractions de dollars.

0
Beth