2010-03-28 7 views
3

J'ai une application Pawnshop Informix-SQL qui calcule une estimation de combien d'argent devrait être prêté à un client, basé sur le poids et la pureté de l'or. Le prêteur sur gage accorde au minimum 5,00 $. L'employé de prêteur sur gages prêtera généralement des montants qui se terminent par 5 ou 0. exemples: 10, 15, 20, 100, 110, 125, etc. Ils font cela pour ne pas avoir de problèmes de pénurie avec des billets de 1,00 $. Donc, si par exemple mon système calcule le prêt devrait être de 12,49 $, arrondi à 10 $, 12,50 $ à 15,00 $, 13,00 $ à 15,00 $, 17,50 $ à 20,00 $, etc. L'employé peut toujours remplacer le montant arrondi si nécessaire. Est-il possible d'accomplir ceci dans la section des instructions d'un écran d'exécution ou devrais-je écrire un cfunc et l'appeler de l'intérieur? .. Existe-t-il des fonctions de la bibliothèque C qui effectuent l'arrondi d'intervalle des valeurs monétaires? , Je pense que le gouvernement des États-Unis devrait cesser d'utiliser des pièces de monnaie pour que les entreprises puissent arrondir les montants au nickel le plus proche, cela économiserait beaucoup de temps et de poids dans nos poches!

Répondre

8

Je venais de diviser par 5, arrondissez au nombre entier approprié, et multiplier par 5.

Il pourrait y avoir un moyen plus facile, mais cela pourrait fonctionner.

3

La fonction C round et les parents feraient ce que vous demandez.

float in_fives = roundf(exact_change/5.) * 5.; 

Il y a aussi rint, que vous pourriez éviter car il n'est pas garanti pour arrondir 12,50 $ correctement.

Questions connexes