Bonjour à Tous,
j'aurais besoin d'arrondir un nombre décimal en nombre entier le plus proche.
Pour cela j'utilise la fonction : ROUND.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
FORM f542_round CHANGING l_value TYPE pc2b5-anzhl.
CALL FUNCTION 'ROUND'
EXPORTING
decimals = 0
input = l_value
sign = '+'
IMPORTING
output = l_value
EXCEPTIONS
input_invalid = 1
overflow = 2
type_invalid = 3
OTHERS = 4.
ENDFORM . |
Le problème de cette fonction est que je dois spécifier vers quelle valeur je dois effectuer mon arrondi :
sign = '+', Arrondi Sup
sign = '-', Arrondi Infé
Alors, que moi j'aimerais qu'il me le détermine tout seul.
Exemple, en entrée j'ai :
l_value = 12.10, en sortie j'aurais 12.00
ou:
l_value = 12.90, en sortie j'aurais 13.00
Avec cette fonction 'ROUND' je vais être obligé de gérer moi même le "sign" à la mano et donc, faire un loop d'indexation sur la chaine de caractère et regarder si le nombre après la virgule est supérieur ou inférieur à 5 . (beurk!)
Y a t il une autre fonction qui permet de faire ça simplement.
Merci.
Partager